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(), rotation: Joi.alternatives().try(Joi.number(), Joi.array().items(Joi.number())).required(),
}).required()); }).required());
registerEndpoint("/remove-pages", "", upload.single("file"), Operations.removePages, Joi.object({
file: PdfFileSchema.required(),
pageSelector: Joi.string().required(),
}).required());
//Remove Pages //Remove Pages
//impose //impose
//Adjust page size/scale //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 { impose, ImposeParamsType } from "./functions/impose";
import { mergePDFs, MergeParamsType } from './functions/mergePDFs'; import { mergePDFs, MergeParamsType } from './functions/mergePDFs';
import { removeBlankPages, RemoveBlankPagesParamsType } from "./functions/removeBlankPages"; import { removeBlankPages, RemoveBlankPagesParamsType } from "./functions/removeBlankPages";
import { removePages, RemovePagesParamsType } from "./functions/removePages";
import { rotatePages, RotateParamsType } from './functions/rotatePages'; import { rotatePages, RotateParamsType } from './functions/rotatePages';
import { scaleContent, ScaleContentParamsType} from './functions/scaleContent'; import { scaleContent, ScaleContentParamsType} from './functions/scaleContent';
import { scalePage, ScalePageParamsType } from './functions/scalePage'; import { scalePage, ScalePageParamsType } from './functions/scalePage';
@ -22,6 +23,7 @@ const toExport = {
impose, impose,
mergePDFs, mergePDFs,
removeBlankPages, removeBlankPages,
removePages,
rotatePages, rotatePages,
scaleContent, scaleContent,
scalePage, scalePage,
@ -37,6 +39,7 @@ export type OperationsParametersBaseType = {
impose: ImposeParamsType; impose: ImposeParamsType;
mergePDFs: MergeParamsType; mergePDFs: MergeParamsType;
removeBlankPages: RemoveBlankPagesParamsType; removeBlankPages: RemoveBlankPagesParamsType;
removePages: RemovePagesParamsType;
rotatePages: RotateParamsType; rotatePages: RotateParamsType;
scaleContent: ScaleContentParamsType; scaleContent: ScaleContentParamsType;
scalePage: ScalePageParamsType; scalePage: ScalePageParamsType;