fixing return of merge not including doc

This commit is contained in:
2025-12-01 14:37:05 +01:00
parent 9f660af924
commit 12892ae488
2 changed files with 7 additions and 9 deletions

2
.gitignore vendored
View File

@@ -139,3 +139,5 @@ dist
vite.config.js.timestamp-* vite.config.js.timestamp-*
vite.config.ts.timestamp-* vite.config.ts.timestamp-*
.vite/ .vite/
todo.txt

View File

@@ -23,8 +23,8 @@ export async function mergePdfFiles(
newPdf: PdfFile, newPdf: PdfFile,
insertAt: number insertAt: number
): Promise<PdfFile> { ): Promise<PdfFile> {
const baseDoc = await PDFDocument.load(basePdf.arrayBuffer); const baseDoc = basePdf.doc ?? await PDFDocument.load(basePdf.arrayBuffer);
const newDoc = await PDFDocument.load(newPdf.arrayBuffer); const newDoc = newPdf.doc ?? await PDFDocument.load(newPdf.arrayBuffer);
const mergedDoc = await PDFDocument.create(); const mergedDoc = await PDFDocument.create();
@@ -42,17 +42,12 @@ export async function mergePdfFiles(
Array.from({ length: newPageCount }, (_, i) => i) Array.from({ length: newPageCount }, (_, i) => i)
); );
// base pages before insertion
for (let i = 0; i < clampedInsertAt; i += 1) { for (let i = 0; i < clampedInsertAt; i += 1) {
mergedDoc.addPage(basePages[i]); mergedDoc.addPage(basePages[i]);
} }
// inserted new pages
for (let i = 0; i < newPages.length; i += 1) { for (let i = 0; i < newPages.length; i += 1) {
mergedDoc.addPage(newPages[i]); mergedDoc.addPage(newPages[i]);
} }
// remaining base pages
for (let i = clampedInsertAt; i < basePages.length; i += 1) { for (let i = clampedInsertAt; i < basePages.length; i += 1) {
mergedDoc.addPage(basePages[i]); mergedDoc.addPage(basePages[i]);
} }
@@ -69,7 +64,8 @@ export async function mergePdfFiles(
return { return {
name: `${baseName}_plus_${newName}.pdf`, name: `${baseName}_plus_${newName}.pdf`,
arrayBuffer: buffer, arrayBuffer: buffer,
pageCount: basePageCount + newPageCount, pageCount: mergedDoc.getPageCount(),
doc: mergedDoc, // 👈 important
}; };
} }