From e63572197d09743987b36c03d2b21601f7c597c0 Mon Sep 17 00:00:00 2001 From: Reece Browne Date: Mon, 25 Aug 2025 19:05:45 +0100 Subject: [PATCH] Fix split export --- frontend/src/components/pageEditor/PageEditor.tsx | 15 ++++++++++----- .../src/services/documentManipulationService.ts | 7 +++++++ 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/frontend/src/components/pageEditor/PageEditor.tsx b/frontend/src/components/pageEditor/PageEditor.tsx index d62eccaa2..9a8382d94 100644 --- a/frontend/src/components/pageEditor/PageEditor.tsx +++ b/frontend/src/components/pageEditor/PageEditor.tsx @@ -441,11 +441,16 @@ const PageEditor = ({ const filenames: string[] = []; const sourceFiles = getSourceFiles(); - const exportFilename = getExportFilename(); - for (const doc of processedDocuments) { + const baseExportFilename = getExportFilename(); + const baseName = baseExportFilename.replace(/\.pdf$/i, ''); + + for (let i = 0; i < processedDocuments.length; i++) { + const doc = processedDocuments[i]; + const partFilename = `${baseName}_part_${i + 1}.pdf`; + const result = sourceFiles - ? await pdfExportService.exportPDFMultiFile(doc, sourceFiles, [], { filename: exportFilename }) - : await pdfExportService.exportPDF(doc, [], { filename: exportFilename }); + ? await pdfExportService.exportPDFMultiFile(doc, sourceFiles, [], { filename: partFilename }) + : await pdfExportService.exportPDF(doc, [], { filename: partFilename }); blobs.push(result.blob); filenames.push(result.filename); } @@ -459,7 +464,7 @@ const PageEditor = ({ }); const zipBlob = await zip.generateAsync({ type: 'blob' }); - const zipFilename = exportFilename.replace(/\.pdf$/i, '.zip'); + const zipFilename = baseExportFilename.replace(/\.pdf$/i, '.zip'); pdfExportService.downloadFile(zipBlob, zipFilename); } else { diff --git a/frontend/src/services/documentManipulationService.ts b/frontend/src/services/documentManipulationService.ts index f84623c6e..75cf7d27e 100644 --- a/frontend/src/services/documentManipulationService.ts +++ b/frontend/src/services/documentManipulationService.ts @@ -61,6 +61,7 @@ export class DocumentManipulationService { // Find split points - pages with splitAfter create split points AFTER them document.pages.forEach((page, index) => { if (page.splitAfter) { + console.log(`Found split marker at page ${page.pageNumber} (index ${index}), adding split point at ${index + 1}`); splitPoints.push(index + 1); } }); @@ -70,12 +71,18 @@ export class DocumentManipulationService { splitPoints.push(document.pages.length); } + console.log('Final split points:', splitPoints); + console.log('Total pages to split:', document.pages.length); + let startIndex = 0; let partNumber = 1; for (const endIndex of splitPoints) { const segmentPages = document.pages.slice(startIndex, endIndex); + console.log(`Creating split document ${partNumber}: pages ${startIndex}-${endIndex-1} (${segmentPages.length} pages)`); + console.log(`Split document ${partNumber} page numbers:`, segmentPages.map(p => p.pageNumber)); + if (segmentPages.length > 0) { documents.push({ ...document,