Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

veraPDF fails to reject PDF 2.0 files with declared PDF/UA-1 conformance #1501

Open
petervwyatt opened this issue Jan 20, 2025 · 4 comments
Open

Comments

@petervwyatt
Copy link

The latest veraPDF/rest Docker container does not fail a PDF 2.0 file that declares PDF/UA-1 conformance. ISO 14289-1 states that PDF/UA-1 only applies to PDF 1.x files. PDF 2.0 files need to use PDF/UA-2.

Here is a sample PDF 2.0 file that accidentally declares dual conformance to both PDF/A-4f (which passes) and PDF/UA-1 that should get failed because it is PDF 2.0. I manually selected "PDF/UA-1" for the check:

pdfa-4f+ua+odf.pdf

Image

(This incorrect PDF was generated by LibreOffice-Dev branch as a result of my issue 160196 which I am testing.)

@bdoubrov
Copy link
Contributor

bdoubrov commented Jan 20, 2025

@petervwyatt thanks for bringing this up. I see that ISO 14289-1, 6.1 says:

The version number of a file may be any value from 1.0 to 1.7, and the value shall not be used in determining whether a file is in conformance with this part of ISO 14289.

Applied to your example, we clearly get two conflicting requirements:

  1. The version number of a file may be any value from 1.0 to 1.7
  2. The value shall not be used in determining whether a file is in conformance with this part of ISO 14289.

The second negates the first one. Or should it be read differently?

@petervwyatt
Copy link
Author

petervwyatt commented Jan 20, 2025

@bdoubrov I interpret those words differently and don't see any conflict: the "conformance" statement is about how to know if a file is declaring itself as "conforming to PDF/UA" and this is done solely on the XMP metadata meaning that processors/AT don't need to check all the requirements of the PDF DOM data in order to determine if should be considered PDF/UA-1. And for processors (non-validators) that is a single simple step - check the XMP --> PDF/UA-1 then can blindly go ahead and treat as PDF/UA-1.

Does that make sense?

PS. Of course a robust processor may still decide to do checks at runtime as it processes a self-declared PDF/UA-1 file, but that is good programming not an ISO requirement.

@bdoubrov
Copy link
Contributor

OK, so the requirement for PDF/UA-1 documents to have version 1.0-1.7 comes not from this conformance clause, but from the fact that PDF/UA-1 is based on ISO 32000-1, and the latter declares only 1.0-1.7 as "known" versions?

I'm trying to speak it up carefully, as the tests of other PDF/UA validators on your sample file give different results. And we'd like to have a definitive answer in case of further questions.

@petervwyatt
Copy link
Author

petervwyatt commented Jan 21, 2025

@bdoubrov - yes, that's my take since ISO 32000-1:2008 7.5.2 clearly states BOTH a file format requirement and a "conforming reader" requirement to support only 1.x. So these both get inherited via the reference.

So definitely CANNOT have PDF/UA-1 files that are PDF 2.0. That is "reserved" for PDF/UA-2.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants