2023-11-08 00:11:49 +01:00
|
|
|
|
|
|
|
import { PDFDocument } from 'pdf-lib';
|
|
|
|
|
2023-11-08 01:33:22 +01:00
|
|
|
export async function createSubDocument(pdfDoc: PDFDocument, pagesToExtractArray: number[]): Promise<Uint8Array> {
|
2023-11-08 00:11:49 +01:00
|
|
|
const subDocument = await PDFDocument.create();
|
2023-10-26 19:56:23 +02:00
|
|
|
|
|
|
|
// Check that array max number is not larger pdf pages number
|
|
|
|
if(Math.max(...pagesToExtractArray) >= pdfDoc.getPageCount()) {
|
|
|
|
throw new Error(`The PDF document only has ${pdfDoc.getPageCount()} pages and you tried to extract page ${Math.max(...pagesToExtractArray)}`);
|
|
|
|
}
|
|
|
|
|
|
|
|
const copiedPages = await subDocument.copyPages(pdfDoc, pagesToExtractArray);
|
|
|
|
|
|
|
|
for (let i = 0; i < copiedPages.length; i++) {
|
|
|
|
subDocument.addPage(copiedPages[i]);
|
|
|
|
}
|
|
|
|
|
|
|
|
return subDocument.save();
|
2023-11-08 00:11:49 +01:00
|
|
|
}
|