Creating a PDF/A standard PDF file

Using Ibex PDF Creator you can create a PDF file which conforms to the PDF/A-1b standard.

PDF/A-1b documents are intended for long term archiving and contain all the information required for consistent reproducible display of the documents content. Reliance on external facilities, such as fonts which are not embedded, is not permitted.

The PDF/A standard (ISO 19005-1) is not publicly available, to get a copy you must purchase it from iso.org. The standard contains a number of serious errors which are corrected in a second document which is provided with the standard, so be sure to read that also.

Metadata

Apart from some limitations on the content of the document, the main feature of a PDF/A-1b document is the presence of metadata. This metadata is stored in the PDF as uncompressed XML to allow for retrieval using a wide range of tools.

Each of the elements used in the metadata is explained in the PDF/A standard.

Ibex supports the <ibex:pdfa> element which is used to place PDF/A compliant metadata into the FO file in order for Ibex to place it in the PDF file.

The FO for the example PDF/A-1b file pdfa.fo is shown below:

<?xml version="1.0" encoding="utf-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:ibex="http://www.xmlpdf.com/2003/ibex/Format">

  <ibex:pdfa>
    <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="3.1-702">
      <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

        <!-- PDFA ID -->
        <rdf:Description rdf:about="" xmlns:pdfaid="http://www.aiim.org/pdfa/ns/id/">
          <pdfaid:part>1</pdfaid:part>
          <pdfaid:conformance>A</pdfaid:conformance>
        </rdf:Description>

        <!-- XMP -->
        <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/">
          <xmp:CreateDate>2002-08-15T17:10:04Z</xmp:CreateDate>
        </rdf:Description>

        <!-- PDF -->
        <rdf:Description rdf:about="" xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
          <pdf:Keywords>Testing, PDF/A</pdf:Keywords>
          <!--
            <pdf:Producer/>
           -->
        </rdf:Description>

        <!-- dublin core -->
        <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">

          <dc:format>application/pdf</dc:format>

          <dc:title>

            <rdf:Alt>

              <rdf:li xml:lang="x-default">dc:title - should appear in pdf info.title</rdf:li>
              <rdf:li xml:lang="it-it">XMP - Piattaforma Estendibile di Metadata</rdf:li>
            </rdf:Alt>

          </dc:title>

          <dc:creator>

            <rdf:Seq>

              <rdf:li>dc:creator - should appear in pdf info.author</rdf:li>

            </rdf:Seq>

          </dc:creator>

          <dc:description>

            <rdf:Alt>

              <rdf:li xml:lang="x-default">dc:description - should appear in pdf info.subject</rdf:li>

            </rdf:Alt>

          </dc:description>

        </rdf:Description>

      </rdf:RDF>
    </x:xmpmeta>
  </ibex:pdfa>


  <fo:layout-master-set>
    <fo:simple-page-master master-name="FirstPage" page-width="8.5in" page-height="8in">
      <fo:region-body margin="2cm"/>
      <fo:region-before extent="15mm" display-align="after" padding="0mm 2in 0mm 2.5in" />
    </fo:simple-page-master>
  </fo:layout-master-set>
  <fo:page-sequence master-reference="FirstPage">
    <fo:flow flow-name="xsl-region-body" font="12pt arial">

      <fo:block>
        pdf-a test document (Z)
      </fo:block>

      <fo:block space-before="1cm">
        check with
        <fo:inline text-decoration="underline">A</fo:inline>dvanced ->
        Prefli<fo:inline text-decoration="underline">g</fo:inline>ht ->
        PDF/A compliance -> Verify compliance with PDF/A-1b
      </fo:block>

    </fo:flow>
  </fo:page-sequence>
</fo:root>

Processing

The metadata from the <ibex:pdfa> element is inserted into the PDF file. Elements which are missing from the metadata but which are required for compliance (such as xmp:CreateDate) will be automatically added.

Compliance

If you have a copy of Acrobat Professional you can verify the compliance of a PDF file using the Preflight tool, using the menu options Advanced->Preflight->PDF/A complance->Verify compliance with PDF/A-1b as shown here:

The result of executing the compliance check should look like this:

The level of compliance tested by Acrobat changed from Acrobat 8 to Acrobat 9. In Acrobat 9 a color space is required which was not required previously.

Downloads

Downloads for this example are:

The FO file pdfa.fo.

Copyright (c) 2002-2023 Visual Programming Limited