From 640b953ec7fe7d11e53c641735f9184eaa73bcc0 Mon Sep 17 00:00:00 2001 From: "James R. Barlow" Date: Tue, 17 Apr 2018 14:55:32 -0700 Subject: [PATCH] Fix PDF/A validation failure due to timezone being omitted from /ModDate --- src/ocrmypdf/pdfa.py | 4 +++- src/ocrmypdf/pipeline.py | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/ocrmypdf/pdfa.py b/src/ocrmypdf/pdfa.py index ffd0ff77..67a02d87 100644 --- a/src/ocrmypdf/pdfa.py +++ b/src/ocrmypdf/pdfa.py @@ -129,7 +129,9 @@ def encode_pdf_date(d: datetime) -> str: s += "+00'00'" elif tz != '': sign, tz_hours, tz_mins = tz[0], tz[1:3], tz[3:5] - s += "{}{}'{tz}'".format(sign, tz_hours, tz_mins) + s += "{}{}'{}'".format(sign, tz_hours, tz_mins) + else: + raise ValueError("Naive timezone not supported") return s diff --git a/src/ocrmypdf/pipeline.py b/src/ocrmypdf/pipeline.py index 88711935..e3359753 100644 --- a/src/ocrmypdf/pipeline.py +++ b/src/ocrmypdf/pipeline.py @@ -18,7 +18,7 @@ from contextlib import suppress from shutil import copyfileobj from pathlib import Path -from datetime import datetime +from datetime import datetime, timezone import sys import os import shutil @@ -900,7 +900,7 @@ def get_pdfmark(base_pdf, options): PROGRAM_NAME, VERSION, renderer_tag, tesseract.version()) - pdfmark['/ModDate'] = encode_pdf_date(datetime.utcnow()) + pdfmark['/ModDate'] = encode_pdf_date(datetime.now(timezone.utc)) return pdfmark