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(),
|
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
|
||||||
|
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 { 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;
|
||||||
|
Loading…
Reference in New Issue
Block a user