mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2025-02-07 00:17:07 +01:00
Added remove pages
This commit is contained in:
parent
c060b2a4e0
commit
9bca4848f3
@ -73,6 +73,11 @@ registerEndpoint("/rotate-pdf", "", upload.single("file"), Operations.rotatePage
|
||||
rotation: Joi.alternatives().try(Joi.number(), Joi.array().items(Joi.number())).required(),
|
||||
}).required());
|
||||
|
||||
registerEndpoint("/remove-pages", "", upload.single("file"), Operations.removePages, Joi.object({
|
||||
file: PdfFileSchema.required(),
|
||||
pageSelector: Joi.string().required(),
|
||||
}).required());
|
||||
|
||||
//Remove Pages
|
||||
//impose
|
||||
//Adjust page size/scale
|
||||
|
21
shared-operations/src/functions/removePages.ts
Normal file
21
shared-operations/src/functions/removePages.ts
Normal file
@ -0,0 +1,21 @@
|
||||
|
||||
import { PdfFile } from '../wrappers/PdfFile.js';
|
||||
import { getPages } from './common/getPagesByIndex.js';
|
||||
import { invertSelection, parsePageIndexSpecification } from './common/pageIndexesUtils.js';
|
||||
|
||||
export type RemovePagesParamsType = {
|
||||
file: PdfFile;
|
||||
pageSelector: string;
|
||||
}
|
||||
export async function removePages(params: RemovePagesParamsType) {
|
||||
const { file, pageSelector } = params;
|
||||
const pdfDoc = await file.pdfLibDocument;
|
||||
const pageCount = pdfDoc.getPageCount();
|
||||
|
||||
const pageSelection = parsePageIndexSpecification(pageSelector, pageCount);
|
||||
const pagesToKeep = invertSelection(pageSelection, pageCount);
|
||||
|
||||
const newFile = await getPages(file, pagesToKeep);
|
||||
newFile.filename += "_removedPages"
|
||||
return newFile;
|
||||
}
|
@ -4,6 +4,7 @@ import { extractPages, ExtractPagesParamsType } from "./functions/extractPages";
|
||||
import { impose, ImposeParamsType } from "./functions/impose";
|
||||
import { mergePDFs, MergeParamsType } from './functions/mergePDFs';
|
||||
import { removeBlankPages, RemoveBlankPagesParamsType } from "./functions/removeBlankPages";
|
||||
import { removePages, RemovePagesParamsType } from "./functions/removePages";
|
||||
import { rotatePages, RotateParamsType } from './functions/rotatePages';
|
||||
import { scaleContent, ScaleContentParamsType} from './functions/scaleContent';
|
||||
import { scalePage, ScalePageParamsType } from './functions/scalePage';
|
||||
@ -22,6 +23,7 @@ const toExport = {
|
||||
impose,
|
||||
mergePDFs,
|
||||
removeBlankPages,
|
||||
removePages,
|
||||
rotatePages,
|
||||
scaleContent,
|
||||
scalePage,
|
||||
@ -37,6 +39,7 @@ export type OperationsParametersBaseType = {
|
||||
impose: ImposeParamsType;
|
||||
mergePDFs: MergeParamsType;
|
||||
removeBlankPages: RemoveBlankPagesParamsType;
|
||||
removePages: RemovePagesParamsType;
|
||||
rotatePages: RotateParamsType;
|
||||
scaleContent: ScaleContentParamsType;
|
||||
scalePage: ScalePageParamsType;
|
||||
|
Loading…
Reference in New Issue
Block a user