The first set of such “parser differential” test-cases became public on September 22, 2023, allowing the full PDF ecosystem - PDF Association members and non-members alike - to align.
The PDF files provided are for PDF software developers needing minimal targeted test files that demonstrate specific issues that were resolved in the most recent edition of the PDF specification (the latest definition is now available at no cost). These cases are included because they have been observed across multiple widely-used implementations.
Similar to the “responsible reporting” process used in cybersecurity these test cases are previewed to PDF Association members for 60 days prior to open publication. Please note that the PDF Differences repo will not include security-related issues, but focuses exclusively on PDF's "prime directive": portability and interoperability.
Here are three examples from the initial set of eight differences posted to the PDF Differences repo as of September 22, 2023.
In PDF, “fill and stroking” painting operations are explicitly defined to be atomic. This differs from some other graphic languages where similar features are a short-hand convenience for performing a sequence of independent paint operations, commonly "fill then stroke" (e.g. SVG) or occasionally, "stroke then fill".
In these alternate rendering models, and unlike PDF, there is a clear Z-order difference between the fill and stroke objects as illustrated below. In PDF the atomic “fill and stroke” paint operation means that there is never a distinct band where the stoke overlaps the fill area - the lower figures in this diagram are thus incorrect:
Prior to ISO 32000-2, the definition of PDF dashing failed to define how to render a negative dash phase, resulting in different appearances between implementations. This is now resolved with new wording in ISO 32000-2.
The formulae for the ColorBurn and ColorDodge blend modes were corrected by Adobe back in 2009 but missed the publication of PDF 1.7 (ISO 32000-1:2008). These subtle corrections produce the same results except in one special edge case to ensure that the result is a continuous function of the source color cs:
The PDF Association uses a private member-only GitHub repo allowing its members to test and address any potential implementation issues within a fixed but reasonable 60 day timeframe before the test cases are moved to the public repo. Implementations at fault will not be named or identified.
Peter Wyatt is the PDF Association’s CTO and an independent technology consultant with deep file format and parsing expertise. A developer and researcher working on PDF technologies for more than 20 years, he is ISO Project Leader of ISO 32000 (the core PDF standard), co-Chairs the PDF Association’s PDF TWG and is the PDF Association’s Principal Scientist leading the organization’s … Read more