4

I'm trying to generate valid PDF/A via ConTeXt, but the verapdf validator is reporting an error.

My input document is

\setupinteraction
  [title={TITLE},
  author={AUTHOR}]

% attempt to generate PDF/A
\setupbackend
  [format=pdf/a-3a,
   profile={sRGB.icc},
   intent=sRGB IEC61966-2.1]
\setupbackend[export=yes]
\setupstructure[state=start,method=auto]

\starttext

\input knuth

\stoptext

Compiling this with context test.mkiv and testing with verapdf test.pdf leads to the following validation error:

<validationReport profileName="PDF/A-3A validation profile" statement="PDF file is not compliant with Validation Profile requirements." isCompliant="false">
  <details passedRules="130" failedRules="1" passedChecks="1684" failedChecks="1">
    <rule specification="ISO 19005-3:2012" clause="6.6.2.3" testNumber="7" status="failed" passedChecks="0" failedChecks="1">
      <description>All properties specified in XMP form shall use either the predefined schemas defined in the XMP Specification,
                  ISO 19005-1 or this part of ISO 19005, or any extension schemas that comply with 6.6.2.3.2.</description>
      <object>XMPProperty</object>
      <test>(isPredefinedInXMP2005 == true || isDefinedInMainPackage == true || isDefinedInCurrentPackage == true) &amp;&amp; isValueTypeCorrect == true</test>
      <check status="failed">
        <context>root/document[0]/metadata[0](15 0 obj PDMetadata)/XMPPackage[0]/Properties[2](http://purl.org/dc/elements/1.1/ - dc:description)</context>
        <errorMessage>An XMP property is either not not pre-defined, is not defined in any extension schema, or has invalid type.</errorMessage>
      </check>
    </rule>
  </details>
</validationReport>

Is there a way to avoid this validation error? I've tried to use a different PDF/A flavour like pdf/a-1a:2005, but that doesn't change anything.

4
  • Can you please check the log file whether the profiles were found and loaded correctly? ConTeXt tdoesn't throw an error if there is a problem but just announces it in the log. Commented Feb 2, 2022 at 20:34
  • The log says profiles > profile specification 'sRGB IEC61966-2.1' loaded from '/usr/share/texmf/tex/context/colors/icc/context/colorprofiles.xml', I guess that's the expected thing? Karl Pettersson helped me to narrow the error down to the dc:description entry in the metadata: removing it stops veraPDF from complaining. I don't understand the specs well enough, but to me this looks like it might be a problem with veraPDF?
    – tarleb
    Commented Feb 2, 2022 at 21:41
  • 3
    That might indeed be the case. I also had some issues with unintelligible verification errors from veraPDF in the past. There is also the Preflight tool of Apache PDFbox (pdfbox.apache.org). Commented Feb 2, 2022 at 21:44
  • Thank you, I didn't know about PDFbox! I've raised an issue for veraPDF on GitHub.
    – tarleb
    Commented Feb 2, 2022 at 21:57

1 Answer 1

1

This appears to be an issue with the metadata schema supplied by ConTeXt; an appropriate fix is being discussed on the mailing list.

For the time being, the PDF can still be made PDF/A-3A compliant by removing the dc:description field, e.g. with the pikepdf library.

import pikepdf
import sys
infile = sys.argv[1]
outfile = sys.argv[2]
with pikepdf.open(infile) as pdf:
    with pdf.open_metadata() as meta:
        del meta['dc:description']
    pdf.save(outfile)

Use the script as python3 fix.py input.pdf output.pdf.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .