From 74bdfc07fb9c9e9d6e63f55fc44c7e06f960f127 Mon Sep 17 00:00:00 2001 From: "James R. Barlow" Date: Sat, 24 Mar 2018 01:18:22 -0700 Subject: [PATCH] mumerge: fix regressions --- ocrmypdf/pipeline.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/ocrmypdf/pipeline.py b/ocrmypdf/pipeline.py index b3cb7f1c..fddd93c4 100644 --- a/ocrmypdf/pipeline.py +++ b/ocrmypdf/pipeline.py @@ -912,11 +912,17 @@ def _merge_pages_common( if not f.endswith('.txt')) metadata_file = next( (ii for ii in input_files if ii.endswith('.repaired.pdf')), None) - input_files.remove(metadata_file) + if metadata_file in input_files: + input_files.remove(metadata_file) def input_file_order(s): '''Sort order: All rendered pages followed - by their debug page.''' + by their debug page, if any, followed by Postscript stub. + Ghostscript documentation has the Postscript stub at the + beginning, but it works at the end and also gets document info + right that way.''' + if s.endswith('.ps'): + return 99999999 key = page_number(s) * 10 if 'debug' in os.path.basename(s): key += 1 @@ -990,14 +996,19 @@ def merge_pages_mupdf( import fitz doc = fitz.Document() - + + reader_metadata = pypdf.PdfFileReader(metadata_file) + pdfmark = get_pdfmark(reader_metadata, options) + pdfmark['/Producer'] = 'qpdf ' + qpdf.version() + pymupdf_metadata = {k[1:].lower() : v for k, v in pdfmark.items()} + for pdf_page in pdf_pages: page = fitz.open(pdf_page) doc.insertPDF(page) metadata = fitz.open(metadata_file) doc.setToC(metadata.getToC()) - doc.setMetadata(metadata.metadata) + doc.setMetadata(pymupdf_metadata) doc.save(output_file, garbage=4)