From 7e7e2f2e916886a28673182dadf509ad9b4e141e Mon Sep 17 00:00:00 2001 From: "James R. Barlow" Date: Mon, 8 Sep 2025 12:30:52 -0700 Subject: [PATCH] Raw value in pdfa XML block uses upper case codes, so account for this --- src/ocrmypdf/pdfa.py | 7 +++++-- tests/test_main.py | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/ocrmypdf/pdfa.py b/src/ocrmypdf/pdfa.py index 10f8e224..b44765d1 100644 --- a/src/ocrmypdf/pdfa.py +++ b/src/ocrmypdf/pdfa.py @@ -121,9 +121,12 @@ def file_claims_pdfa(filename: Path): 'conformance': 'No PDF/A metadata in XMP', } valid_part_conforms = {'1a', '1b', '2a', '2b', '2u', '3a', '3b', '3u'} - conformance = f'PDF/A-{pdfmeta.pdfa_status}' + # Raw value in XMP metadata returned by pikepdf is uppercase, but ISO + # uses lower case for conformance levels. + pdfa_status_iso = pdfmeta.pdfa_status.lower() + conformance = f'PDF/A-{pdfa_status_iso}' pdfa_dict: dict[str, str | bool] = {} - if pdfmeta.pdfa_status in valid_part_conforms: + if pdfa_status_iso in valid_part_conforms: pdfa_dict['pass'] = True pdfa_dict['output'] = 'pdfa' pdfa_dict['conformance'] = conformance diff --git a/tests/test_main.py b/tests/test_main.py index c7f051b6..9ad5f8ff 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -801,7 +801,7 @@ def test_pdfa_n(pdfa_level, resources, outpdf): ) pdfa_info = file_claims_pdfa(outpdf) - assert pdfa_info['conformance'] == f'PDF/A-{pdfa_level}B' + assert pdfa_info['conformance'] == f'PDF/A-{pdfa_level}b' def test_decompression_bomb_error(resources, outpdf, caplog):