You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by je...@apache.org on 2006/07/24 09:43:21 UTC
svn commit: r424949 - in /xmlgraphics/fop/trunk/src:
documentation/content/xdocs/site.xml
documentation/content/xdocs/trunk/pdfa.xml
documentation/content/xdocs/trunk/pdfx.xml
java/org/apache/fop/cli/CommandLineOptions.java
Author: jeremias
Date: Mon Jul 24 00:43:19 2006
New Revision: 424949
URL: http://svn.apache.org/viewvc?rev=424949&view=rev
Log:
Command-line integration of PDF/X support. Generalized the specifying of PDF profiles (-pdfprofile parameter).
Documentation update for PDF/A.
Documentation for PDF/X.
Added:
xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/pdfx.xml (with props)
Modified:
xmlgraphics/fop/trunk/src/documentation/content/xdocs/site.xml
xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/pdfa.xml
xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/CommandLineOptions.java
Modified: xmlgraphics/fop/trunk/src/documentation/content/xdocs/site.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/documentation/content/xdocs/site.xml?rev=424949&r1=424948&r2=424949&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/documentation/content/xdocs/site.xml (original)
+++ xmlgraphics/fop/trunk/src/documentation/content/xdocs/site.xml Mon Jul 24 00:43:19 2006
@@ -137,6 +137,7 @@
<if label="Intermediate Format" href="intermediate.html"/>
<pdfencryption label="PDF Encryption" href="pdfencryption.html"/>
<pdfa label="PDF/A" href="pdfa.html"/>
+ <pdfx label="PDF/X" href="pdfx.html"/>
<graphics label="Graphics" href="graphics.html"/>
<fonts label="Fonts" href="fonts.html"/>
<hyphenation label="Hyphenation" href="hyphenation.html"/>
Modified: xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/pdfa.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/pdfa.xml?rev=424949&r1=424948&r2=424949&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/pdfa.xml (original)
+++ xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/pdfa.xml Mon Jul 24 00:43:19 2006
@@ -50,15 +50,9 @@
the creation of the elements described in ISO 19005-1.
</p>
<p>
- There is a restriction with
- XMP metadata. If an XMP metadata packet is present in the fo:declarations
- element of an FO file, the values from the XMP packet are not synchronized
- with the Info PDF object as is mandated by chapter 6.7.3 of the ISO document.
- However, if no XMP packet is supplied FOP automatically generates an XMP
- packet from the values in the Info PDF object.
- </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 not implemented, yet. This is mostly because of the requirement
@@ -68,10 +62,9 @@
<section id="command-line">
<title>Usage (command line)</title>
<p>
- If you specify "-pdfa1b" instead of "-pdf" for the output format on the
- command line, support for PDF/A-1b is activated. If there is a violation of
- one of the validation rules for PDF/A, an error message is presented and the
- processing stops.
+ 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>
</section>
<section id="embedded">
@@ -82,7 +75,6 @@
Here's an example:
</p>
<source><![CDATA[
-FOUserAgent userAgent = fopFactory.newFOUserAgent();
userAgent.getRendererOptions().put("pdf-a-mode", "PDF/A-1b");
Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, userAgent);
[..]]]></source>
@@ -110,7 +102,8 @@
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.
+ 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.
@@ -127,6 +120,13 @@
embedded in clear text so non-PDF-aware applications can extract the XMP metadata.
</li>
</ul>
+ </section>
+ <section id="profile-compatibility">
+ <title>PDF profile compatibility</title>
+ <p>
+ The PDF profiles "PDF/X-3:2003" and "PDF/A-1b" are compatible and can both be
+ activated at the same time.
+ </p>
</section>
</body>
</document>
Added: xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/pdfx.xml
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/pdfx.xml?rev=424949&view=auto
==============================================================================
--- xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/pdfx.xml (added)
+++ xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/pdfx.xml Mon Jul 24 00:43:19 2006
@@ -0,0 +1,135 @@
+<?xml version="1.0" standalone="no"?>
+<!--
+ Copyright 2006 The Apache Software Foundation
+
+ Licensed 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>PDF/X (ISO 15930)</title>
+ <version>$Revision$</version>
+ <authors>
+ <person name="Jeremias Märki" email="jeremias@apache.org"/>
+ </authors>
+ </header>
+ <body>
+ <section id="overview">
+ <title>Overview</title>
+ <warning>
+ Support for PDF/X is available beginning with version 0.93. This feature is new and
+ may not be 100% complete, yet. Feedback is welcome.
+ </warning>
+ <p>
+ PDF/X is a standard which faciliates prepress digital data exchange using PDF.
+ Currently, only PDF/X-3:2003 is implemented out of the many different flavours of PDF/X
+ profiles. PDF/X-3:2003 is documented in
+ <a href="http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=39940&ICS1=37&ICS2=100&ICS3=99">ISO 15930-6:2003(E)</a>.
+ More info on PDF/X can be found on the
+ <a href="http://www.pdfx.info/">PDF/X info site</a>.
+ </p>
+ </section>
+ <section id="status">
+ <title>Implementation Status</title>
+ <p>
+ <strong>PDF/X-3:2003</strong> is implemented to the degree that FOP supports
+ the creation of the elements described in ISO 15930-6.
+ </p>
+ <p>
+ An important restriction of the current implementation is that all normal
+ RGB colors specified in XSL-FO and SVG are left unchanged in the sRGB color
+ space (XSL-FO and SVG both use sRGB as their default color space).
+ There's no conversion to a CMYK color space. Although sRGB is a
+ calibrated color space, its color space has a different size than a CMYK
+ color space which makes the conversion a lossy conversion and can lead to
+ unwanted results. Although the use of the calibrated sRGB has been promoted
+ for years, print shops usually prefer to convert an sRGB PDF to CMYK prior
+ to production. Until there's full CMYK support in FOP you will have to
+ work closely with your print service provider to make sure you get the
+ intended result.
+ </p>
+ <p>
+ Tests have been performed against Adobe Acrobat 7.0.7 (Preflight function).
+ Note that there are bugs in Adobe Acrobat which cause false alarms if both
+ PDF/A-1b and PDF/X-3:2003 are activated at the same time.
+ </p>
+ </section>
+ <section id="command-line">
+ <title>Usage (command line)</title>
+ <p>
+ To activate PDF/X-3:2003 from the command-line, specify "-pdfprofile PDF/X-3:2003"
+ as a parameter. If there is a violation of one of the validation rules for
+ PDF/X, an error message is presented and the processing stops.
+ </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[
+FOUserAgent userAgent = fopFactory.newFOUserAgent();
+userAgent.getRendererOptions().put("pdf-x-mode", "PDF/X-3:2003");
+Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, userAgent);
+[..]]]></source>
+ <p>
+ If one of the validation rules of PDF/X is violated, an PDFConformanceException
+ (descendant of RuntimeException) is thrown.
+ </p>
+ </section>
+ <section id="rules">
+ <title>PDF/X in Action</title>
+ <p>
+ There are a number of things that must be looked after if you activate a PDF/X
+ 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/X doesn't allow it.
+ </li>
+ <li>
+ Don't use CMYK images without an ICC color profile. PDF/X doesn't allow mixing
+ color spaces and FOP currently only properly supports the sRGB color space. However,
+ you will need to specify an output device profile (usually a CMYK profile) in the
+ configuration. sRGB won't work here since it's a display device profile, not an
+ output device profile.
+ </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/X-3:2003.
+ </li>
+ <li>
+ PDF is forced to version 1.4 if PDF/X-3:2003 is activated.
+ </li>
+ </ul>
+ </section>
+ <section id="profile-compatibility">
+ <title>PDF profile compatibility</title>
+ <p>
+ The PDF profiles "PDF/X-3:2003" and "PDF/A-1b" are compatible and can both be
+ activated at the same time.
+ </p>
+ </section>
+ </body>
+</document>
Propchange: xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/pdfx.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/pdfx.xml
------------------------------------------------------------------------------
svn:keywords = Id
Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/CommandLineOptions.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/CommandLineOptions.java?rev=424949&r1=424948&r2=424949&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/CommandLineOptions.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/cli/CommandLineOptions.java Mon Jul 24 00:43:19 2006
@@ -33,8 +33,10 @@
import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.FopFactory;
import org.apache.fop.apps.MimeConstants;
+import org.apache.fop.pdf.PDFAMode;
import org.apache.fop.pdf.PDFEncryptionManager;
import org.apache.fop.pdf.PDFEncryptionParams;
+import org.apache.fop.pdf.PDFXMode;
import org.apache.fop.render.awt.AWTRenderer;
import org.apache.fop.render.Renderer;
import org.apache.fop.render.pdf.PDFRenderer;
@@ -301,6 +303,8 @@
i = i + parsePDFOwnerPassword(args, i);
} else if (args[i].equals("-u")) {
i = i + parsePDFUserPassword(args, i);
+ } else if (args[i].equals("-pdfprofile")) {
+ i = i + parsePDFProfile(args, i);
} else if (args[i].equals("-noprint")) {
getPDFEncryptionParams().setAllowPrint(false);
} else if (args[i].equals("-nocopy")) {
@@ -397,6 +401,9 @@
} else {
outfile = new File(args[i + 1]);
if (pdfAMode != null) {
+ if (renderingOptions.get("pdf-a-mode") != null) {
+ throw new FOPException("PDF/A mode already set");
+ }
renderingOptions.put("pdf-a-mode", pdfAMode);
}
return 1;
@@ -622,6 +629,33 @@
}
}
+ private int parsePDFProfile(String[] args, int i) throws FOPException {
+ if ((i + 1 == args.length)
+ || (args[i + 1].charAt(0) == '-')) {
+ throw new FOPException("You must specify a PDF profile");
+ } else {
+ String profile = args[i + 1];
+ PDFAMode pdfAMode = PDFAMode.valueOf(profile);
+ if (pdfAMode != null && pdfAMode != PDFAMode.DISABLED) {
+ if (renderingOptions.get("pdf-a-mode") != null) {
+ throw new FOPException("PDF/A mode already set");
+ }
+ renderingOptions.put("pdf-a-mode", pdfAMode.getName());
+ return 1;
+ } else {
+ PDFXMode pdfXMode = PDFXMode.valueOf(profile);
+ if (pdfXMode != null && pdfXMode != PDFXMode.DISABLED) {
+ if (renderingOptions.get("pdf-x-mode") != null) {
+ throw new FOPException("PDF/X mode already set");
+ }
+ renderingOptions.put("pdf-x-mode", pdfXMode.getName());
+ return 1;
+ }
+ }
+ throw new FOPException("Unsupported PDF profile: " + profile);
+ }
+ }
+
private void setOutputMode(String mime) throws FOPException {
if (outputmode == null) {
outputmode = mime;
@@ -863,21 +897,23 @@
"\nUSAGE\nFop [options] [-fo|-xml] infile [-xsl file] "
+ "[-awt|-pdf|-mif|-rtf|-tiff|-png|-pcl|-ps|-txt|-at [mime]|-print] <outfile>\n"
+ " [OPTIONS] \n"
- + " -d debug mode \n"
- + " -x dump configuration settings \n"
- + " -q quiet mode \n"
- + " -c cfg.xml use additional configuration file cfg.xml\n"
- + " -l lang the language to use for user information \n"
- + " -r relaxed/less strict validation (where available)\n"
- + " -dpi xxx target resolution in dots per inch (dpi) where xxx is a number\n"
- + " -s for area tree XML, down to block areas only\n"
- + " -v to show FOP version being used\n\n"
- + " -o [password] PDF file will be encrypted with option owner password\n"
- + " -u [password] PDF file will be encrypted with option user password\n"
- + " -noprint PDF file will be encrypted without printing permission\n"
- + " -nocopy PDF file will be encrypted without copy content permission\n"
- + " -noedit PDF file will be encrypted without edit content permission\n"
- + " -noannotations PDF file will be encrypted without edit annotation permission\n\n"
+ + " -d debug mode \n"
+ + " -x dump configuration settings \n"
+ + " -q quiet mode \n"
+ + " -c cfg.xml use additional configuration file cfg.xml\n"
+ + " -l lang the language to use for user information \n"
+ + " -r relaxed/less strict validation (where available)\n"
+ + " -dpi xxx target resolution in dots per inch (dpi) where xxx is a number\n"
+ + " -s for area tree XML, down to block areas only\n"
+ + " -v to show FOP version being used\n\n"
+ + " -o [password] PDF file will be encrypted with option owner password\n"
+ + " -u [password] PDF file will be encrypted with option user password\n"
+ + " -noprint PDF file will be encrypted without printing permission\n"
+ + " -nocopy PDF file will be encrypted without copy content permission\n"
+ + " -noedit PDF file will be encrypted without edit content permission\n"
+ + " -noannotations PDF file will be encrypted without edit annotation permission\n"
+ + " -pdfprofile prof PDF file will be generated with the specified profile\n"
+ + " (Examples for prof: PDF/A-1b or PDF/X-3:2003)\n\n"
+ " [INPUT] \n"
+ " infile xsl:fo input file (the same as the next) \n"
+ " -fo infile xsl:fo input file \n"
@@ -890,7 +926,7 @@
+ " outfile input will be rendered as PDF into outfile\n"
+ " -pdf outfile input will be rendered as PDF (outfile req'd)\n"
+ " -pdfa1b outfile input will be rendered as PDF/A-1b compliant PDF\n"
- + " (outfile req'd)\n"
+ + " (outfile req'd, same as \"-pdf outfile -pdfprofile PDF/A-1b\")\n"
+ " -awt input will be displayed on screen \n"
+ " -mif outfile input will be rendered as MIF (FrameMaker) (outfile req'd)\n"
+ " -rtf outfile input will be rendered as RTF (outfile req'd)\n"
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org