24 lines
741 B
TypeScript
Raw Normal View History

2024-01-04 20:17:54 -05:00
import { PdfFile } from "../wrappers/PdfFile.js";
import { getPages } from "./common/getPagesByIndex.js";
import { parsePageIndexSpecification } from "./common/pageIndexesUtils";
2024-01-04 20:17:54 -05:00
export interface ExtractPagesParamsType {
file: PdfFile;
pageIndexes: string | number[];
}
2023-11-17 00:45:37 +03:00
export async function extractPages(params: ExtractPagesParamsType): Promise<PdfFile> {
const { file, pageIndexes } = params;
const pdfLibDocument = await file.pdfLibDocument;
2024-01-04 20:17:54 -05:00
let indexes = pageIndexes;
if (!Array.isArray(indexes)) {
indexes = parsePageIndexSpecification(indexes, pdfLibDocument.getPageCount());
}
const newFile = await getPages(file, indexes);
2024-01-04 20:17:54 -05:00
newFile.filename += "_extractedPages";
2023-11-17 00:45:37 +03:00
return newFile;
}