ietf-tools / xml2rfc

Generate RFCs and IETF drafts from document source in XML according to the IETF xml2rfc v2 and v3 vocabularies
https://ietf-tools.github.io/xml2rfc/
BSD 3-Clause "New" or "Revised" License
63 stars 35 forks source link

feat: Add PDF/A support and source attachment to PDF. #1090

Open kesara opened 5 months ago

kesara commented 5 months ago

Fixes #1085

This change requires WeasyPrint >=61.0.

kesara commented 5 months ago

With updates from https://github.com/Kozea/WeasyPrint/pull/1869 xml2rfc can generate a PDF file that confirms with PDF/A-3B standard.

Sample file: https://t4.fq.nz/rfc9527.pdf

VeraPDF output:

<?xml version="1.0" encoding="utf-8"?>
<report>
  <buildInformation>
    <releaseDetails id="core" version="1.24.1" buildDate="2023-06-22T10:38:00Z"></releaseDetails>
    <releaseDetails id="validation-model" version="1.24.1" buildDate="2023-06-22T11:37:00Z"></releaseDetails>
    <releaseDetails id="gui" version="1.24.1" buildDate="2023-06-22T14:19:00Z"></releaseDetails>
  </buildInformation>
  <jobs>
    <job>
      <item size="91087">
        <name>/docs/rfc9527.pdf</name>
      </item>
      <validationReport jobEndStatus="normal" profileName="PDF/A-3B validation profile" statement="PDF file is compliant with Validation Profile requirements." isCompliant="true">
        <details passedRules="144" failedRules="0" passedChecks="40904" failedChecks="0"></details>
      </validationReport>
      <duration start="1707442324695" finish="1707442325181">00:00:00.486</duration>
    </job>
  </jobs>
  <batchSummary totalJobs="1" failedToParse="0" encrypted="0" outOfMemory="0" veraExceptions="0">
    <validationReports compliant="1" nonCompliant="0" failedJobs="0">1</validationReports>
    <featureReports failedJobs="0">0</featureReports>
    <repairReports failedJobs="0">0</repairReports>
    <duration start="1707442324642" finish="1707442325193">00:00:00.551</duration>
  </batchSummary>
</report>

Poppler pdfdetach output:

pdfdetach -list rfc9527.pdf
1 embedded files
1: rfc9527.xml
ajeanmahoney commented 4 months ago

I looked at https://t4.fq.nz/rfc9527.pdf, and I can save and open the attached XML file. Some observations:

rfc9527_properties_screenshot.pdf rfc9527_weasy_2_properties_screenshot.pdf