From 96f1b3a4bf4dd195e3fb8a977e531b1bd3a5bb19 Mon Sep 17 00:00:00 2001 From: m-holger Date: Mon, 29 Mar 2021 18:44:58 +0100 Subject: [PATCH] Fix error with annotations on duplicated pages Ensure duplicated pages receive a copy of the annotations, not a reference Fixes https://github.com/pdfarranger/pdfarranger/issues/437 --- pdfarranger/exporter.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pdfarranger/exporter.py b/pdfarranger/exporter.py index 0f96a4a06..89343d57f 100644 --- a/pdfarranger/exporter.py +++ b/pdfarranger/exporter.py @@ -171,6 +171,12 @@ def export(input_files, pages, file_out, mode, mdata): new_page = pdf_output.make_indirect(new_page) pdf_output.pages.append(new_page) + # Ensure annotations are copied rather than referenced + # https://github.com/pdfarranger/pdfarranger/issues/437 + if pikepdf.Name.Annots in current_page: + pdf_temp = pikepdf.Pdf.new() + pdf_temp.pages.append(current_page) + pdf_output.pages[-1].Annots = pdf_output.copy_foreign(pdf_temp.pages[0].Annots) if exportmode in ['ALL_TO_MULTIPLE', 'SELECTED_TO_MULTIPLE']: for n, page in enumerate(pdf_output.pages):