Skip to content

Conversation

@stefan6419846
Copy link
Collaborator

Some testing has shown that the way we embed files does not allow for PDF/A-3 conformance (tested with PDF/A-3B using veraPDF). Apply the necessary patches to our embedding code and add a basic usage example for the necessary properties to set for an attachment to pass validation.

Includes some small additional cleanup to use writer.root_object instead of writer._root_object and make the test names more readable as well.

@codecov
Copy link

codecov bot commented Sep 23, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.07%. Comparing base (d40f359) to head (f2b21da).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@ Coverage Diff @@ ## main #3472 +/- ## ======================================= Coverage 97.07% 97.07% ======================================= Files 56 56 Lines 9614 9615 +1 Branches 1742 1741 -1 ======================================= + Hits 9333 9334 +1  Misses 168 168 Partials 113 113 

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
@stefan6419846 stefan6419846 merged commit 5c5b3bd into py-pdf:main Sep 23, 2025
16 checks passed
@stefan6419846 stefan6419846 deleted the pdfa3_files branch September 23, 2025 10:38
stefan6419846 added a commit that referenced this pull request Sep 28, 2025
## What's new ### Bug Fixes (BUG) - Insert new embedded files in a sorted manner (#3477) by @stefan6419846 - Fix name tree handling for embedded files with Kids-based inputs (#3475) by @stefan6419846 - Make embedding files not break PDF/A-3 compliance (#3472) by @stefan6419846 ### Documentation (DOC) - Document AFRelationship handling for PDF/A and provide constants (#3478) by @stefan6419846 [Full Changelog](6.1.0...6.1.1)
OpenNingia pushed a commit to OpenNingia/pypdf that referenced this pull request Oct 23, 2025
OpenNingia pushed a commit to OpenNingia/pypdf that referenced this pull request Oct 23, 2025
## What's new ### Bug Fixes (BUG) - Insert new embedded files in a sorted manner (py-pdf#3477) by @stefan6419846 - Fix name tree handling for embedded files with Kids-based inputs (py-pdf#3475) by @stefan6419846 - Make embedding files not break PDF/A-3 compliance (py-pdf#3472) by @stefan6419846 ### Documentation (DOC) - Document AFRelationship handling for PDF/A and provide constants (py-pdf#3478) by @stefan6419846 [Full Changelog](py-pdf/pypdf@6.1.0...6.1.1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant