diff --git a/.gitignore b/.gitignore index f1a90a0..5530633 100644 --- a/.gitignore +++ b/.gitignore @@ -138,4 +138,6 @@ dist # Vite files vite.config.js.timestamp-* vite.config.ts.timestamp-* -.vite/ \ No newline at end of file +.vite/ + +todo.txt \ No newline at end of file diff --git a/src/pdf/pdfService.ts b/src/pdf/pdfService.ts index a0e4852..f174179 100644 --- a/src/pdf/pdfService.ts +++ b/src/pdf/pdfService.ts @@ -23,8 +23,8 @@ export async function mergePdfFiles( newPdf: PdfFile, insertAt: number ): Promise { - const baseDoc = await PDFDocument.load(basePdf.arrayBuffer); - const newDoc = await PDFDocument.load(newPdf.arrayBuffer); + const baseDoc = basePdf.doc ?? await PDFDocument.load(basePdf.arrayBuffer); + const newDoc = newPdf.doc ?? await PDFDocument.load(newPdf.arrayBuffer); const mergedDoc = await PDFDocument.create(); @@ -42,17 +42,12 @@ export async function mergePdfFiles( Array.from({ length: newPageCount }, (_, i) => i) ); - // base pages before insertion for (let i = 0; i < clampedInsertAt; i += 1) { mergedDoc.addPage(basePages[i]); } - - // inserted new pages for (let i = 0; i < newPages.length; i += 1) { mergedDoc.addPage(newPages[i]); } - - // remaining base pages for (let i = clampedInsertAt; i < basePages.length; i += 1) { mergedDoc.addPage(basePages[i]); } @@ -69,7 +64,8 @@ export async function mergePdfFiles( return { name: `${baseName}_plus_${newName}.pdf`, arrayBuffer: buffer, - pageCount: basePageCount + newPageCount, + pageCount: mergedDoc.getPageCount(), + doc: mergedDoc, // 👈 important }; }