|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
- <!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
- <!-- $Id$ -->
- <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" "document-v20.dtd">
- <document>
- <header>
- <title>Apache™ FOP: PDF/A (ISO 19005)</title>
- <version>$Revision$</version>
- <authors>
- <person name="Jeremias Märki" email="jeremias@apache.org"/>
- </authors>
- </header>
- <body>
- <section id="overview">
- <title>Overview</title>
- <p>
- PDF/A is a standard which turns PDF into an "electronic document file
- format for long-term preservation". PDF/A-1 is the first part of the
- standard and is documented in
- <a href="http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=38920&ICS1=37&ICS2=100&ICS3=99">ISO 19005-1:2005(E)</a>.
- Work on PDF/A-2 is in progress at
- <a href="http://www.aiim.org/standards.asp?ID=25013">AIIM</a>.
- </p>
- <p>
- Design documentation on PDF/A can be found on FOP's Wiki on the
- <a href="http://wiki.apache.org/xmlgraphics-fop/PDFA1ConformanceNotes">PDFA1ConformanceNotes</a> page.
- </p>
- </section>
- <section id="status">
- <title>Implementation Status</title>
- <p>
- <strong>PDF/A-1b</strong> is implemented to the degree that FOP supports
- the creation of the elements described in ISO 19005-1.
- </p>
- <p>
- Tests have been performed against jHove and Adobe Acrobat 7.0.7 (Preflight function).
- FOP does not validate completely against Apago's PDF Appraiser. Reasons unknown due to
- lack of a full license to get a detailed error protocol.
- </p>
- <p>
- <strong>PDF/A-1a</strong> is based on PDF-A-1b and adds accessibility features
- (such as Tagged PDF). This format is available within the limitation described on
- the <a href="accessibility.html">Accessibility page</a>.
- </p>
- </section>
- <section id="command-line">
- <title>Usage (command line)</title>
- <p>
- To activate PDF/A-1b from the command-line, specify "-pdfprofile PDF/A-1b"
- as a parameter. If there is a violation of one of the validation rules for
- PDF/A, an error message is presented and the processing stops.
- </p>
- <p>
- PDF/A-1a is enabled by specifying "-pdfprofile PDF/A-1a".
- </p>
- </section>
- <section id="embedded">
- <title>Usage (embedded)</title>
- <p>
- When FOP is embedded in another Java application you can set a special option
- on the renderer options in the user agent to activate the PDF/A-1b profile.
- Here's an example:
- </p>
- <source><![CDATA[
- userAgent.getRendererOptions().put("pdf-a-mode", "PDF/A-1b");
- Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, userAgent);
- [..]]]></source>
- <p>
- If one of the validation rules of PDF/A is violated, an PDFConformanceException
- (descendant of RuntimeException) is thrown.
- </p>
- <p>
- For PDF/A-1a, just use the string "PDF/A-1a" instead of "PDF/A-1b".
- </p>
- </section>
- <section id="rules">
- <title>PDF/A in Action</title>
- <p>
- There are a number of things that must be looked after if you activate a PDF/A
- profile. If you receive a PDFConformanceException, have a look at the following
- list (not necessarily comprehensive):
- </p>
- <ul>
- <li>
- Make sure all (!) fonts are embedded. If you use base 14 fonts (like Helvetica)
- you need to obtain a license for them and embed them like any other font.
- </li>
- <li>
- Don't use PDF encryption. PDF/A doesn't allow it.
- </li>
- <li>
- Don't use CMYK images without an ICC color profile. PDF/A doesn't allow mixing
- color spaces and FOP currently only properly supports the sRGB color space. Please
- note that FOP embeds a standard sRGB ICC profile (sRGB IEC61966-2.1) as the
- primary output intent for the PDF if no other output intent has been specified
- in the configuration.
- </li>
- <li>
- Don't use non-RGB colors in SVG images. Same issue as with CMYK images.
- </li>
- <li>
- Don't use EPS graphics with fo:external-graphic. Embedding EPS graphics in PDF
- is deprecated since PDF 1.4 and prohibited by PDF/A.
- </li>
- <li>
- PDF is forced to version 1.4 if PDF/A-1 is activated.
- </li>
- <li>
- No filter must be specified explicitely for metadata objects. Metadata must be
- embedded in clear text so non-PDF-aware applications can extract the XMP metadata.
- </li>
- </ul>
- <note>
- There are additional requirements if you want to enabled PDF/A-1a (Tagged PDF). This is
- particularly the specification of the natural language and alternative descriptions for
- images. Please refer to the <a href="accessibility.html">Accessibility page</a> for details.
- </note>
- </section>
- <section id="profile-compatibility">
- <title>PDF profile compatibility</title>
- <p>
- The PDF profiles "PDF/X-3:2003" and "PDF/A-1b" (or "PDF/A-1a") are compatible and can
- both be activated at the same time.
- </p>
- </section>
- <section id="interoperability">
- <title>Interoperability</title>
- <p>
- There has been some confusion about the namespace for the PDF/A indicator in the XMP
- metadata. At least three variants have been seen in the wild:
- </p>
- <table>
- <tr>
- <td>http://www.aiim.org/pdfa/ns/id.html</td>
- <td><strong>obsolete</strong>, from an early draft of ISO-19005-1, used by Adobe Acrobat 7.x</td>
- </tr>
- <tr>
- <td>http://www.aiim.org/pdfa/ns/id</td>
- <td><strong>obsolete</strong>, found in the original ISO 19005-1:2005 document</td>
- </tr>
- <tr>
- <td>http://www.aiim.org/pdfa/ns/id/</td>
- <td><strong>correct</strong>, found in the technical corrigendum 1 of ISO 19005-1:2005</td>
- </tr>
- </table>
- <p>
- If you get an error validating a PDF/A file in Adobe Acrobat 7.x it doesn't mean that
- FOP did something wrong. It's Acrobat that is at fault. This is fixed in Adobe Acrobat 8.x
- which uses the correct namespace as described in the technical corrigendum 1.
- </p>
- </section>
- </body>
- </document>
|