Added remove pages

This commit is contained in:
Saud Fatayerji 2023-11-18 19:56:45 +03:00
parent c060b2a4e0
commit 9bca4848f3
3 changed files with 29 additions and 0 deletions

View File

@ -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

View 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;
}

View File

@ -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;