2023-11-18 19:56:45 +03:00
|
|
|
|
2024-02-23 23:55:29 +01:00
|
|
|
import { PdfFile } from "../wrappers/PdfFile";
|
|
|
|
import { getPages } from "./common/getPagesByIndex";
|
|
|
|
import { invertSelection, parsePageIndexSpecification } from "./common/pageIndexesUtils";
|
2023-11-18 19:56:45 +03:00
|
|
|
|
2024-01-04 20:17:54 -05:00
|
|
|
export interface RemovePagesParamsType {
|
2023-11-18 19:56:45 +03:00
|
|
|
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);
|
2024-01-04 20:17:54 -05:00
|
|
|
newFile.filename += "_removedPages";
|
2023-11-18 19:56:45 +03:00
|
|
|
return newFile;
|
|
|
|
}
|