From faaa4a1def562ce8ca83884e4cc9f9a9952d6685 Mon Sep 17 00:00:00 2001 From: "James R. Barlow" Date: Fri, 22 Jun 2018 17:45:10 -0700 Subject: [PATCH] Ghostscript, PDF/A: support pathlib --- src/ocrmypdf/exec/ghostscript.py | 4 ++-- src/ocrmypdf/pdfa.py | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/ocrmypdf/exec/ghostscript.py b/src/ocrmypdf/exec/ghostscript.py index 938f76c8..b3a77c1b 100644 --- a/src/ocrmypdf/exec/ghostscript.py +++ b/src/ocrmypdf/exec/ghostscript.py @@ -225,7 +225,7 @@ def generate_pdfa(pdf_pages, output_file, compression, log, "-dPDFACompatibilityPolicy=1", "-sOutputFile=" + gs_pdf.name, ] - args_gs.extend(pdf_pages) + args_gs.extend(fspath(s) for s in pdf_pages) # Stringify Path objs log.debug(args_gs) p = run(args_gs, stdout=PIPE, stderr=STDOUT, universal_newlines=True) @@ -246,7 +246,7 @@ def generate_pdfa(pdf_pages, output_file, compression, log, if p.returncode == 0: # Ghostscript does not change return code when it fails to create # PDF/A - check PDF/A status elsewhere - copy(gs_pdf.name, output_file) + copy(gs_pdf.name, fspath(output_file)) else: log.error('Ghostscript PDF/A rendering failed') raise SubprocessOutputError() diff --git a/src/ocrmypdf/pdfa.py b/src/ocrmypdf/pdfa.py index 38f58c3a..46880120 100644 --- a/src/ocrmypdf/pdfa.py +++ b/src/ocrmypdf/pdfa.py @@ -24,6 +24,8 @@ import pkg_resources from libxmp.utils import file_to_dict from libxmp import consts +from .helpers import universal_open + ICC_PROFILE_RELPATH = 'data/sRGB.icc' SRGB_ICC_PROFILE = pkg_resources.resource_filename( @@ -214,7 +216,7 @@ def generate_pdfa_ps(target_filename, pdfmark, icc='sRGB'): # We should have encoded everything to pure ASCII by this point, and # to be safe, only allow ASCII in PostScript - with open(target_filename, 'w', encoding='ascii') as f: + with universal_open(target_filename, 'w', encoding='ascii') as f: f.write(ps)