From c1b5a6598cb07ab9f0d769cb188ff0952928412e Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri, 15 Mar 2024 20:50:01 -0700 Subject: [PATCH] Improvements to pdf merge --- src/documents/bulk_edit.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/documents/bulk_edit.py b/src/documents/bulk_edit.py index 827fc6232..71c311904 100644 --- a/src/documents/bulk_edit.py +++ b/src/documents/bulk_edit.py @@ -200,11 +200,13 @@ def merge(doc_ids: list[int], metadata_document_id: Optional[int] = None): import pikepdf merged_pdf = pikepdf.new() + version = merged_pdf.pdf_version # use doc_ids to preserve order for doc_id in doc_ids: doc = qs.get(id=doc_id) try: with pikepdf.open(str(doc.source_path)) as pdf: + version = max(version, pdf.pdf_version) merged_pdf.pages.extend(pdf.pages) affected_docs.append(doc.id) except Exception as e: @@ -219,7 +221,8 @@ def merge(doc_ids: list[int], metadata_document_id: Optional[int] = None): settings.SCRATCH_DIR, f"{'_'.join([str(doc_id) for doc_id in doc_ids])[:100]}_merged.pdf", ) - merged_pdf.save(filepath) + merged_pdf.remove_unreferenced_resources() + merged_pdf.save(filepath, min_version=version) merged_pdf.close() if metadata_document_id: