blob: d2741eeb6c859bbc805f9e1621d59f73393e22f3 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta property="og:image" content="http://www.apache.org/images/asf_logo.gif" />
<!--
<link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/style.css">
-->
<link rel="stylesheet" type="text/css" media="screen" href="https://www.apache.org/css/code.css">
<link href="/css/profile.css" rel="stylesheet" type="text/css" />
<link href="/css/xmlgraphics.css" rel="stylesheet" type="text/css" />
<link href="/css/print.css" rel="stylesheet" type="text/css" media="print" />
<script src="https://code.jquery.com/jquery.min.js"></script>
<script type="text/javascript" src="/js/jquery.stoc.js"></script>
<script>
$(document).ready(function(){
$('ul#navigation a').each(function() {
if (this.href === window.location.href)
{ $(this). attr('id', 'forefront');}
});
$('ul#navigation a#forefront').each(function() {
});
})
$(function(){
$("#items").stoc({ search: "#content", stocTitle: "<h3>Page Contents</h3>" });
});
</script>
<style>
.highlight {color: red;}
</style>
</head>
<body>
<div id="banner">&nbsp;
</div>
<div id="navigation">
<style type="text/css">
/* The following code is added by mdx_elementid.py
It was originally lifted from http://subversion.apache.org/style/site.css */
/*
* Hide class="elementid-permalink", except when an enclosing heading
* has the :hover property.
*/
.headerlink, .elementid-permalink {
visibility: hidden;
}
h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
<p><a href="/"><img alt="Apache XML Graphics Project Logo" src="/images/apache-xml-graphics.gif" title="Apache XML Graphics Project" /></a></p>
<h1 id="apache-fop">Apache&trade; FOP<a class="headerlink" href="#apache-fop" title="Permanent link">&para;</a></h1>
<ul>
<li><a href="/fop/">FOP Home</a></li>
<li><a href="/fop/download.html">Download</a></li>
<li><a href="/fop/quickstartguide.html">Quick Start Guide</a></li>
<li><a href="/fop/compliance.html">Compliance</a></li>
<li><a href="/fop/gethelp.html">Getting Help</a></li>
<li><a href="/fop/faq.html">FAQs</a></li>
<li><a href="https://cwiki.apache.org/confluence/display/XMLGRAPHICSFOP">FOP Wiki</a></li>
<li><a href="/fop/maillist.html">Mailing Lists</a></li>
<li><a href="/fop/license.html">License</a></li>
<li>
<h2 id="resources">Resources<a class="headerlink" href="#resources" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="/fop/fo.html">XSL-FO</a></li>
<li><a href="/fop/examples.html">Examples</a></li>
<li><a href="/fop/bugs.html">Bugs</a></li>
<li><a href="https://cwiki.apache.org/confluence/display/XMLGRAPHICSFOP/FrontPage">Wiki</a></li>
<li><a href="/fop/resources.html">Other</a></li>
</ul>
</li>
<li>
<h2 id="project">Project<a class="headerlink" href="#project" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="/fop/news.html">News</a></li>
<li><a href="/fop/team.html">Who We Are</a></li>
<li><a href="/fop/status.html">Status</a></li>
<li><a href="/fop/knownissues.html">Known Issues</a></li>
<li><a href="/fop/changes.html">Changes</a></li>
</ul>
</li>
<li>
<h2 id="versions">Versions<a class="headerlink" href="#versions" title="Permanent link">&para;</a></h2>
<ul>
<li>
<h2 id="fop-trunk-dev">FOP Trunk (dev)<a class="headerlink" href="#fop-trunk-dev" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="/fop/trunk/">Overview</a></li>
<li><a href="/fop/trunk/upgrading.html">Upgrading</a></li>
<li>
<h3 id="using-apache-fop">Using Apache&trade; FOP<a class="headerlink" href="#using-apache-fop" title="Permanent link">&para;</a></h3>
<ul>
<li><a href="/fop/trunk/compiling.html">Build</a></li>
<li><a href="/fop/trunk/configuration.html">Configure</a></li>
<li><a href="/fop/trunk/running.html">Run</a></li>
<li><a href="/fop/trunk/embedding.html">Embed</a></li>
<li><a href="/fop/trunk/servlets.html">Servlets</a></li>
<li><a href="/fop/trunk/anttask.html">Ant Task</a></li>
</ul>
</li>
<li>
<h3 id="features">Features<a class="headerlink" href="#features" title="Permanent link">&para;</a></h3>
<ul>
<li><a href="/fop/trunk/accessibility.html">Accessibility</a></li>
<li><a href="/fop/trunk/complexscripts.html">Complex Scripts</a></li>
<li><a href="/fop/trunk/events.html">Events</a></li>
<li><a href="/fop/trunk/extensions.html">Extensions</a></li>
<li><a href="/fop/trunk/fonts.html">Fonts</a></li>
<li><a href="/fop/trunk/graphics.html">Graphics</a></li>
<li><a href="/fop/trunk/hyphenation.html">Hyphenation</a></li>
<li><a href="/fop/trunk/intermediate.html">Intermediate Format</a></li>
<li><a href="/fop/trunk/metadata.html">Metadata</a></li>
<li><a href="/fop/trunk/output.html">Output Targets</a></li>
<li><a href="/fop/trunk/pdfa.html">PDF/A</a></li>
<li><a href="/fop/trunk/pdfx.html">PDF/X</a></li>
<li><a href="/fop/trunk/pdfencryption.html">PDF Encryption</a></li>
<li><a href="/fop/fop-pdf-images.html">PDF Images</a></li>
<li><a href="/fop/trunk/whitespacemanagement.html">Whitespace Management</a></li>
</ul>
</li>
</ul>
</li>
<li>
<h2 id="fop-25">FOP 2.5<a class="headerlink" href="#fop-25" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="/fop/2.5/">FOP 2.5 Overview</a></li>
<li><a href="/fop/2.5/releaseNotes_2.5.html">Release Notes</a></li>
<li><a href="/fop/2.5/changes_2.5.html">Changes (2.5)</a></li>
<li><a href="/fop/2.5/knownissues_overview.html">Known Issues</a></li>
<li><a href="/fop/2.5/upgrading.html">Upgrading</a></li>
<li>
<h3 id="using-apache-fop-25">Using Apache FOP 2.5<a class="headerlink" href="#using-apache-fop-25" title="Permanent link">&para;</a></h3>
<ul>
<li><a href="/fop/2.5/compiling.html">Build</a></li>
<li><a href="/fop/2.5/configuration.html">Configure</a></li>
<li><a href="/fop/2.5/running.html">Run</a></li>
<li><a href="/fop/2.5/embedding.html">Embed</a></li>
<li><a href="/fop/2.5/servlets.html">Servlets</a></li>
<li><a href="/fop/2.5/anttask.html">Ant Task</a></li>
</ul>
</li>
<li>
<h3 id="features_1">Features<a class="headerlink" href="#features_1" title="Permanent link">&para;</a></h3>
<ul>
<li><a href="/fop/2.5/accessibility.html">Accessibility</a></li>
<li><a href="/fop/2.5/complexscripts.html">Complex Scripts</a></li>
<li><a href="/fop/2.5/events.html">Events</a></li>
<li><a href="/fop/2.5/extensions.html">Extensions</a></li>
<li><a href="/fop/2.5/fonts.html">Fonts</a></li>
<li><a href="/fop/2.5/graphics.html">Graphics</a></li>
<li><a href="/fop/2.5/hyphenation.html">Hyphenation</a></li>
<li><a href="/fop/2.5/intermediate.html">Intermediate Format</a></li>
<li><a href="/fop/2.5/metadata.html">Metadata</a></li>
<li><a href="/fop/2.5/output.html">Output Targets</a></li>
<li><a href="/fop/2.5/pdfa.html">PDF/A</a></li>
<li><a href="/fop/2.5/pdfx.html">PDF/X</a></li>
<li><a href="/fop/2.5/pdfencryption.html">PDF Encryption</a></li>
<li><a href="/fop/fop-pdf-images.html">PDF Images</a></li>
<li><a href="/fop/2.5/whitespacemanagement.html">Whitespace Management</a> </li>
</ul>
</li>
</ul>
</li>
<li>
<h2 id="fop-24">FOP 2.4<a class="headerlink" href="#fop-24" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="/fop/2.4/">FOP 2.4 Overview</a></li>
<li><a href="/fop/2.4/releaseNotes_2.4.html">Release Notes</a></li>
<li><a href="/fop/2.4/changes_2.4.html">Changes (2.4)</a></li>
<li><a href="/fop/2.4/knownissues_overview.html">Known Issues</a></li>
<li><a href="/fop/2.4/upgrading.html">Upgrading</a></li>
<li>
<h3 id="using-apache-fop-24">Using Apache FOP 2.4<a class="headerlink" href="#using-apache-fop-24" title="Permanent link">&para;</a></h3>
<ul>
<li><a href="/fop/2.4/compiling.html">Build</a></li>
<li><a href="/fop/2.4/configuration.html">Configure</a></li>
<li><a href="/fop/2.4/running.html">Run</a></li>
<li><a href="/fop/2.4/embedding.html">Embed</a></li>
<li><a href="/fop/2.4/servlets.html">Servlets</a></li>
<li><a href="/fop/2.4/anttask.html">Ant Task</a></li>
</ul>
</li>
<li>
<h3 id="features_2">Features<a class="headerlink" href="#features_2" title="Permanent link">&para;</a></h3>
<ul>
<li><a href="/fop/2.4/accessibility.html">Accessibility</a></li>
<li><a href="/fop/2.4/complexscripts.html">Complex Scripts</a></li>
<li><a href="/fop/2.4/events.html">Events</a></li>
<li><a href="/fop/2.4/extensions.html">Extensions</a></li>
<li><a href="/fop/2.4/fonts.html">Fonts</a></li>
<li><a href="/fop/2.4/graphics.html">Graphics</a></li>
<li><a href="/fop/2.4/hyphenation.html">Hyphenation</a></li>
<li><a href="/fop/2.4/intermediate.html">Intermediate Format</a></li>
<li><a href="/fop/2.4/metadata.html">Metadata</a></li>
<li><a href="/fop/2.4/output.html">Output Targets</a></li>
<li><a href="/fop/2.4/pdfa.html">PDF/A</a></li>
<li><a href="/fop/2.4/pdfx.html">PDF/X</a></li>
<li><a href="/fop/2.4/pdfencryption.html">PDF Encryption</a></li>
<li><a href="/fop/fop-pdf-images.html">PDF Images</a></li>
<li><a href="/fop/2.4/whitespacemanagement.html">Whitespace Management</a> </li>
</ul>
</li>
</ul>
</li>
<li>
<h2 id="fop-23">FOP 2.3<a class="headerlink" href="#fop-23" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="/fop/2.3/">FOP 2.3 Overview</a></li>
<li><a href="/fop/2.3/releaseNotes_2.3.html">Release Notes</a></li>
<li><a href="/fop/2.3/changes_2.3.html">Changes (2.3)</a></li>
<li><a href="/fop/2.3/knownissues_overview.html">Known Issues</a></li>
<li><a href="/fop/2.3/upgrading.html">Upgrading</a></li>
<li>
<h3 id="using-apache-fop-23">Using Apache FOP 2.3<a class="headerlink" href="#using-apache-fop-23" title="Permanent link">&para;</a></h3>
<ul>
<li><a href="/fop/2.3/compiling.html">Build</a></li>
<li><a href="/fop/2.3/configuration.html">Configure</a></li>
<li><a href="/fop/2.3/running.html">Run</a></li>
<li><a href="/fop/2.3/embedding.html">Embed</a></li>
<li><a href="/fop/2.3/servlets.html">Servlets</a></li>
<li><a href="/fop/2.3/anttask.html">Ant Task</a></li>
</ul>
</li>
<li>
<h3 id="features_3">Features<a class="headerlink" href="#features_3" title="Permanent link">&para;</a></h3>
<ul>
<li><a href="/fop/2.3/accessibility.html">Accessibility</a></li>
<li><a href="/fop/2.3/complexscripts.html">Complex Scripts</a></li>
<li><a href="/fop/2.3/events.html">Events</a></li>
<li><a href="/fop/2.3/extensions.html">Extensions</a></li>
<li><a href="/fop/2.3/fonts.html">Fonts</a></li>
<li><a href="/fop/2.3/graphics.html">Graphics</a></li>
<li><a href="/fop/2.3/hyphenation.html">Hyphenation</a></li>
<li><a href="/fop/2.3/intermediate.html">Intermediate Format</a></li>
<li><a href="/fop/2.3/metadata.html">Metadata</a></li>
<li><a href="/fop/2.3/output.html">Output Targets</a></li>
<li><a href="/fop/2.3/pdfa.html">PDF/A</a></li>
<li><a href="/fop/2.3/pdfx.html">PDF/X</a></li>
<li><a href="/fop/2.3/pdfencryption.html">PDF Encryption</a></li>
<li><a href="/fop/fop-pdf-images.html">PDF Images</a></li>
<li><a href="/fop/2.3/whitespacemanagement.html">Whitespace Management</a> </li>
</ul>
</li>
</ul>
</li>
<li>
<h2 id="fop-22">FOP 2.2<a class="headerlink" href="#fop-22" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="/fop/2.2/">FOP 2.2 Overview</a></li>
<li><a href="/fop/2.2/releaseNotes_2.2.html">Release Notes</a></li>
<li><a href="/fop/2.2/changes_2.2.html">Changes (2.2)</a></li>
<li><a href="/fop/2.2/knownissues_overview.html">Known Issues</a></li>
<li><a href="/fop/2.2/upgrading.html">Upgrading</a></li>
<li>
<h3 id="using-apache-fop-22">Using Apache FOP 2.2<a class="headerlink" href="#using-apache-fop-22" title="Permanent link">&para;</a></h3>
<ul>
<li><a href="/fop/2.2/compiling.html">Build</a></li>
<li><a href="/fop/2.2/configuration.html">Configure</a></li>
<li><a href="/fop/2.2/running.html">Run</a></li>
<li><a href="/fop/2.2/embedding.html">Embed</a></li>
<li><a href="/fop/2.2/servlets.html">Servlets</a></li>
<li><a href="/fop/2.2/anttask.html">Ant Task</a></li>
</ul>
</li>
<li>
<h3 id="features_4">Features<a class="headerlink" href="#features_4" title="Permanent link">&para;</a></h3>
<ul>
<li><a href="/fop/2.2/accessibility.html">Accessibility</a></li>
<li><a href="/fop/2.2/complexscripts.html">Complex Scripts</a></li>
<li><a href="/fop/2.2/events.html">Events</a></li>
<li><a href="/fop/2.2/extensions.html">Extensions</a></li>
<li><a href="/fop/2.2/fonts.html">Fonts</a></li>
<li><a href="/fop/2.2/graphics.html">Graphics</a></li>
<li><a href="/fop/2.2/hyphenation.html">Hyphenation</a></li>
<li><a href="/fop/2.2/intermediate.html">Intermediate Format</a></li>
<li><a href="/fop/2.2/metadata.html">Metadata</a></li>
<li><a href="/fop/2.2/output.html">Output Targets</a></li>
<li><a href="/fop/2.2/pdfa.html">PDF/A</a></li>
<li><a href="/fop/2.2/pdfx.html">PDF/X</a></li>
<li><a href="/fop/2.2/pdfencryption.html">PDF Encryption</a></li>
<li><a href="/fop/fop-pdf-images.html">PDF Images</a></li>
<li><a href="/fop/2.2/whitespacemanagement.html">Whitespace Management</a></li>
</ul>
</li>
</ul>
</li>
<li>
<h2 id="fop-21">FOP 2.1<a class="headerlink" href="#fop-21" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="/fop/2.1/">FOP 2.1 Overview</a></li>
<li><a href="/fop/2.1/releaseNotes_2.1.html">Release Notes</a></li>
<li><a href="/fop/2.1/changes_2.1.html">Changes (2.1)</a></li>
<li><a href="/fop/2.1/knownissues_overview.html">Known Issues</a></li>
<li><a href="/fop/2.1/upgrading.html">Upgrading</a></li>
<li>
<h3 id="using-apache-fop-21">Using Apache FOP 2.1<a class="headerlink" href="#using-apache-fop-21" title="Permanent link">&para;</a></h3>
<ul>
<li><a href="/fop/2.1/compiling.html">Build</a></li>
<li><a href="/fop/2.1/configuration.html">Configure</a></li>
<li><a href="/fop/2.1/running.html">Run</a></li>
<li><a href="/fop/2.1/embedding.html">Embed</a></li>
<li><a href="/fop/2.1/servlets.html">Servlets</a></li>
<li><a href="/fop/2.1/anttask.html">Ant Task</a></li>
</ul>
</li>
<li>
<h3 id="features_5">Features<a class="headerlink" href="#features_5" title="Permanent link">&para;</a></h3>
<ul>
<li><a href="/fop/2.1/accessibility.html">Accessibility</a></li>
<li><a href="/fop/2.1/complexscripts.html">Complex Scripts</a></li>
<li><a href="/fop/2.1/events.html">Events</a></li>
<li><a href="/fop/2.1/extensions.html">Extensions</a></li>
<li><a href="/fop/2.1/fonts.html">Fonts</a></li>
<li><a href="/fop/2.1/graphics.html">Graphics</a></li>
<li><a href="/fop/2.1/hyphenation.html">Hyphenation</a></li>
<li><a href="/fop/2.1/intermediate.html">Intermediate Format</a></li>
<li><a href="/fop/2.1/metadata.html">Metadata</a></li>
<li><a href="/fop/2.1/output.html">Output Targets</a></li>
<li><a href="/fop/2.1/pdfa.html">PDF/A</a></li>
<li><a href="/fop/2.1/pdfx.html">PDF/X</a></li>
<li><a href="/fop/2.1/pdfencryption.html">PDF Encryption</a></li>
<li><a href="/fop/fop-pdf-images.html">PDF Images</a></li>
<li><a href="/fop/2.1/whitespacemanagement.html">Whitespace Management</a></li>
</ul>
</li>
</ul>
</li>
<li>
<h2 id="fop-20">FOP 2.0<a class="headerlink" href="#fop-20" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="/fop/2.0/">FOP 2.0 Overview</a></li>
<li><a href="/fop/2.0/releaseNotes_2.0.html">Release Notes</a></li>
<li><a href="/fop/2.0/changes_2.0.html">Changes (2.0)</a></li>
<li><a href="/fop/2.0/knownissues_overview.html">Known Issues</a></li>
<li><a href="/fop/2.0/upgrading.html">Upgrading</a></li>
<li>
<h3 id="using-apache-fop-20">Using Apache FOP 2.0<a class="headerlink" href="#using-apache-fop-20" title="Permanent link">&para;</a></h3>
<ul>
<li><a href="/fop/2.0/compiling.html">Build</a></li>
<li><a href="/fop/2.0/configuration.html">Configure</a></li>
<li><a href="/fop/2.0/running.html">Run</a></li>
<li><a href="/fop/2.0/embedding.html">Embed</a></li>
<li><a href="/fop/2.0/servlets.html">Servlets</a></li>
<li><a href="/fop/2.0/anttask.html">Ant Task</a></li>
</ul>
</li>
<li>
<h3 id="features_6">Features<a class="headerlink" href="#features_6" title="Permanent link">&para;</a></h3>
<ul>
<li><a href="/fop/2.0/accessibility.html">Accessibility</a></li>
<li><a href="/fop/2.0/complexscripts.html">Complex Scripts</a></li>
<li><a href="/fop/2.0/events.html">Events</a></li>
<li><a href="/fop/2.0/extensions.html">Extensions</a></li>
<li><a href="/fop/2.0/fonts.html">Fonts</a></li>
<li><a href="/fop/2.0/graphics.html">Graphics</a></li>
<li><a href="/fop/2.0/hyphenation.html">Hyphenation</a></li>
<li><a href="/fop/2.0/intermediate.html">Intermediate Format</a></li>
<li><a href="/fop/2.0/metadata.html">Metadata</a></li>
<li><a href="/fop/2.0/output.html">Output Targets</a></li>
<li><a href="/fop/2.0/pdfa.html">PDF/A</a></li>
<li><a href="/fop/2.0/pdfx.html">PDF/X</a></li>
<li><a href="/fop/2.0/pdfencryption.html">PDF Encryption</a></li>
<li><a href="/fop/fop-pdf-images.html">PDF Images</a></li>
<li><a href="/fop/2.0/whitespacemanagement.html">Whitespace Management</a></li>
</ul>
</li>
</ul>
</li>
<li>
<h2 id="fop-11">FOP 1.1<a class="headerlink" href="#fop-11" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="/fop/1.1/">FOP 1.1 Overview</a></li>
<li><a href="/fop/1.1/releaseNotes_1.1.html">Release Notes</a></li>
<li><a href="/fop/1.1/changes_1.1.html">Changes (1.1)</a></li>
<li><a href="/fop/1.1/knownissues_overview.html">Known Issues</a></li>
<li><a href="/fop/1.1/upgrading.html">Upgrading</a></li>
<li>
<h3 id="using-apache-fop-11">Using Apache FOP 1.1<a class="headerlink" href="#using-apache-fop-11" title="Permanent link">&para;</a></h3>
<ul>
<li><a href="/fop/1.1/compiling.html">Build</a></li>
<li><a href="/fop/1.1/configuration.html">Configure</a></li>
<li><a href="/fop/1.1/running.html">Run</a></li>
<li><a href="/fop/1.1/embedding.html">Embed</a></li>
<li><a href="/fop/1.1/servlets.html">Servlets</a></li>
<li><a href="/fop/1.1/anttask.html">Ant Task</a></li>
</ul>
</li>
<li>
<h3 id="features_7">Features<a class="headerlink" href="#features_7" title="Permanent link">&para;</a></h3>
<ul>
<li><a href="/fop/1.1/accessibility.html">Accessibility</a></li>
<li><a href="/fop/1.1/complexscripts.html">Complex Scripts</a></li>
<li><a href="/fop/1.1/events.html">Events</a></li>
<li><a href="/fop/1.1/extensions.html">Extensions</a></li>
<li><a href="/fop/1.1/fonts.html">Fonts</a></li>
<li><a href="/fop/1.1/graphics.html">Graphics</a></li>
<li><a href="/fop/1.1/hyphenation.html">Hyphenation</a></li>
<li><a href="/fop/1.1/intermediate.html">Intermediate Format</a></li>
<li><a href="/fop/1.1/metadata.html">Metadata</a></li>
<li><a href="/fop/1.1/output.html">Output Targets</a></li>
<li><a href="/fop/1.1/pdfa.html">PDF/A</a></li>
<li><a href="/fop/1.1/pdfx.html">PDF/X</a></li>
<li><a href="/fop/1.1/pdfencryption.html">PDF Encryption</a></li>
</ul>
</li>
</ul>
</li>
<li>
<h2 id="fop-10">FOP 1.0<a class="headerlink" href="#fop-10" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="/fop/1.0/">FOP 1.0 Overview</a></li>
<li><a href="/fop/1.0/releaseNotes_1.0.html">Release Notes</a></li>
<li><a href="/fop/1.0/changes_1.0.html">Changes (1.0)</a></li>
<li><a href="/fop/1.0/knownissues_overview.html">Known Issues</a></li>
<li><a href="/fop/1.0/upgrading.html">Upgrading</a></li>
<li>
<h3 id="using-apache-fop-10">Using Apache FOP 1.0<a class="headerlink" href="#using-apache-fop-10" title="Permanent link">&para;</a></h3>
<ul>
<li><a href="/fop/1.0/compiling.html">Build</a></li>
<li><a href="/fop/1.0/configuration.html">Configure</a></li>
<li><a href="/fop/1.0/running.html">Run</a></li>
<li><a href="/fop/1.0/embedding.html">Embed</a></li>
<li><a href="/fop/1.0/servlets.html">Servlets</a></li>
<li><a href="/fop/1.0/anttask.html">Ant Task</a></li>
</ul>
</li>
<li>
<h3 id="features_8">Features<a class="headerlink" href="#features_8" title="Permanent link">&para;</a></h3>
<ul>
<li><a href="/fop/1.0/output.html">Output Targets</a></li>
<li><a href="/fop/1.0/intermediate.html">Intermediate Format</a></li>
<li><a href="/fop/1.0/pdfencryption.html">PDF Encryption</a></li>
<li><a href="/fop/1.0/pdfa.html">PDF/A</a></li>
<li><a href="/fop/1.0/pdfx.html">PDF/X</a></li>
<li><a href="/fop/1.0/graphics.html">Graphics</a></li>
<li><a href="/fop/1.0/fonts.html">Fonts</a></li>
<li><a href="/fop/1.0/hyphenation.html">Hyphenation</a></li>
<li><a href="/fop/1.0/extensions.html">Extensions</a></li>
<li><a href="/fop/1.0/events.html">Events</a></li>
<li><a href="/fop/1.0/metadata.html">Metadata</a></li>
<li><a href="/fop/1.0/accessibility.html">Accessibility</a></li>
</ul>
</li>
</ul>
</li>
<li>
<h2 id="fop-development">FOP Development<a class="headerlink" href="#fop-development" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="/fop/dev/">General Info</a></li>
<li>
<h2 id="design">Design<a class="headerlink" href="#design" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="/fop/dev/design/">Design Info</a></li>
</ul>
</li>
<li>
<h2 id="core-process">Core Process<a class="headerlink" href="#core-process" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="/fop/dev/design/startup.html">Startup</a></li>
<li><a href="/fop/dev/design/parsing.html">XML Parsing</a></li>
<li><a href="/fop/dev/design/fotree.html">FO Tree</a></li>
<li><a href="/fop/dev/design/properties.html">Properties</a></li>
<li><a href="/fop/dev/design/layout.html">Layout</a></li>
<li><a href="/fop/dev/design/breakpos.html">Break Possibility</a></li>
<li><a href="/fop/dev/design/areas.html">Area Tree</a></li>
<li><a href="/fop/dev/design/renderers.html">Renderers</a></li>
</ul>
</li>
<li>
<h2 id="miscellaneous">Miscellaneous<a class="headerlink" href="#miscellaneous" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="/fop/dev/design/images.html">Images</a></li>
<li><a href="/fop/dev/design/pdf-library.html">PDF Library</a></li>
<li><a href="/fop/dev/design/svg.html">SVG</a></li>
<li><a href="/fop/dev/design/embedding.html">Embedding</a></li>
<li><a href="/fop/dev/design/extending.html">Extending</a></li>
<li><a href="/fop/dev/design/optimise.html">Optimisations</a></li>
<li><a href="/fop/dev/design/useragent.html">User Agent</a></li>
</ul>
</li>
<li><a href="https://cwiki.apache.org/confluence/display/XMLGRAPHICSFOP/FOPProjectPages">Unresolved (Wiki)</a></li>
<li><a href="/fop/dev/svg.html">SVG</a></li>
<li><a href="/fop/dev/extensions.html">Extensions</a></li>
<li>
<h2 id="develop">Develop<a class="headerlink" href="#develop" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="/fop/dev/implement.html">Walk-Thru</a></li>
<li><a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20FOP%20AND%20description%20~%20%22\%22[patch]\%22%22%20AND%20status%20in%20%28Open%2C%20%22In%20Progress%22%2C%20Reopened%29">Patch Queue</a></li>
<li><a href="/fop/dev/conventions.html">Conventions</a></li>
</ul>
</li>
<li>
<h2 id="test">Test<a class="headerlink" href="#test" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="/fop/dev/testing.html">Testing</a></li>
</ul>
</li>
<li>
<h2 id="deploy">Deploy<a class="headerlink" href="#deploy" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="/fop/dev/doc.html">Doc Mgmt</a></li>
<li><a href="/fop/dev/release.html">Release</a></li>
<li><a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20FOP%20AND%20issuetype%20%3D%20Bug%20AND%20status%20in%20%28Open%2C%20%22In%20Progress%22%2C%20Reopened%29">Bugs</a></li>
</ul>
</li>
<li>
<h2 id="resources_1">Resources<a class="headerlink" href="#resources_1" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="/fop/dev/faq.html">FAQs</a></li>
<li><a href="/fop/dev/tools.html">Tools</a></li>
<li><a href="http://svn.apache.org/viewvc/xmlgraphics/fop">ViewVC</a></li>
</ul>
</li>
<li>
<h2 id="subpackages">SubPackages<a class="headerlink" href="#subpackages" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="/fop/dev/rtflib.html">RTFlib</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h1 id="apache-xml-graphics">Apache&trade; XML Graphics<a class="headerlink" href="#apache-xml-graphics" title="Permanent link">&para;</a></h1>
<ul>
<li>
<h2 id="project-overview">Project Overview<a class="headerlink" href="#project-overview" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="/team.html">Who We Are</a></li>
<li><a href="/legal.html">Legal Stuff</a></li>
<li><a href="/charter.html">Project Charter</a></li>
<li><a href="/mail.html">Mailing Lists</a></li>
<li><a href="/repo.html">Code Repositories</a></li>
<li><a href="https://www.apache.org/foundation/sponsorship.html">ASF Sponsorship Program</a></li>
<li><a href="https://www.apache.org/foundation/thanks.html">ASF Thanks</a></li>
<li><a href="https://www.apache.org/licenses/">Licenses</a></li>
<li><a href="/security.html">Apache XML Graphics Security</a></li>
<li><a href="https://www.apache.org/security/">ASF Security</a></li>
</ul>
</li>
</ul>
<h1 id="sub-projects">Sub Projects<a class="headerlink" href="#sub-projects" title="Permanent link">&para;</a></h1>
<ul>
<li><a href="/batik/">Apache Batik</a></li>
<li><a href="/commons/">Apache XML Graphics Commons</a></li>
</ul>
<h3 id="search-apache-xml-graphics">Search Apache XML Graphics<a class="headerlink" href="#search-apache-xml-graphics" title="Permanent link">&para;</a></h3>
<form name="search" id="search" action="https://www.google.com/search" method="get">
<input value="xmlgraphics.apache.org" name="sitesearch" type="hidden"/>
<input type="text" name="q" id="query" />
<input type="submit" id="submit" value="Search" />
</form>
<h3 id="apachecon-n-america">ApacheCon N. America<a class="headerlink" href="#apachecon-n-america" title="Permanent link">&para;</a></h3>
<p><a title="ApacheCon North America" href="https://www.apachecon.com"><img class="apachecon_logo" alt="ApacheCon North America" src="https://www.apachecon.com/images/landingpage/apachecon-logo.png" width="200" /></a><br /><br /></p>
<ul>
<li><strong><a href="https://www.apachecon.com/">ApacheCon NA</a></strong></li>
</ul>
<p>Hope to see you there!</p>
<h3 id="apachecon-europe">ApacheCon Europe<a class="headerlink" href="#apachecon-europe" title="Permanent link">&para;</a></h3>
<p><a title="ApacheCon Europe" href="https://www.apachecon.com"><img class="apachecon_logo" alt="ApacheCon Europe" src="https://www.apachecon.com/images/landingpage/apachecon-logo.png" width="200" /></a><br /><br /></p>
<ul>
<li><strong><a href="https://www.apachecon.com/">ApacheCon Europe</a></strong></li>
</ul>
<p>Hope to see you there!</p>
<p><a title="Apache Software Foundation" href="https://www.apache.org"><img id="asf_logo_url" alt="Apache Software Foundation " src="/images/asf_logo_url.png" width="200" /></a><br /><br /></p>
<p><a title="Support the Apache Software Foundation" href="https://donate.apache.org/"><img id="asf_support_url" alt="Support the Apache Software Foundation " src="https://blogs.apache.org/foundation/mediaresource/d67ca611-a57c-462d-ac23-95063f81d175" width="200" /></a></p>
<script>
$(document).ready(function () {
$('#navigation :header').click(function () {
var text = $(this).siblings('ul');
if (text.is(':hidden')) {
text.slideDown('200');
} else {
text.slideUp('200');
}
});
if ($('#navigation :header').siblings('ul')) {
$('#navigation :header').not('#search-apache-xml-graphics, #apachewzxhzdk3-xml-graphics, #sub-projects').append(' &raquo;');
}
$('#navigation > ul > li > ul > li ul').hide();
$('#project-overview').next().hide();
$('#versions').next().show();
var str=location.href.toLowerCase();
$("#navigation li a").each(function() {
if (str.indexOf(this.href.toLowerCase()) > -1) {
$(this).parents().slideDown('200');
$("li.highlight").removeClass("highlight");
$(this).parent().addClass("highlight");
}
});
})
</script> </div>
<div id="bannertext" style="border-bottom: 2px dashed #666666; height: 70px;">
<a href="/fop/"><img src="/images/apache-fop-logo.jpg" alt="The Apache FOP Project" width="120" height="65" style="float:left; margin-right: 15px;" /></a>
<h2>The Apache&trade; FOP Project</h2>
</div>
<h1>Apache(tm) FOP: PDF encryption.</h1>
Translations:
<a href="/fop/2.0/pdfencryption.html">en</a>
<a href="/fop/0.95/pdfencryption.html">en</a>
<a href="/fop/2.5/pdfencryption.html">en</a>
<a href="/fop/trunk/pdfencryption.html">en</a>
<a href="/fop/1.1/pdfencryption.html">en</a>
<a href="/fop/2.2/pdfencryption.html">en</a>
<a href="/fop/2.1/pdfencryption.html">en</a>
<a href="/fop/2.3/pdfencryption.html">en</a>
<a href="/fop/2.4/pdfencryption.html">en</a>
<h1>Apache&trade; FOP: PDF encryption.</h1>
<p><authors><person email="pietsch@apache.org" name="J.Pietschmann"></person><person email="jeremias@apache.org" name="Jeremias Märki"></person></authors></p>
<h2 id="Overview">Overview</h2>
<p>Apache&trade; FOP supports encryption of PDF output, thanks to Patrick C. Lankswert. This feature is commonly used to prevent unauthorized viewing, printing, editing, copying text from the document and doing annotations. It is also possible to ask the user for a password in order to view the contents. Note that there already exist third party applications which can decrypt an encrypted PDF without effort and allow the aforementioned operations, therefore the degree of protection is limited.</p>
<p>For further information about features and restrictions regarding PDF encryption, look at the documentation coming with Adobe Acrobat or the technical documentation on the Adobe web site.</p>
<h2 id="commandline">Usage (command line)</h2>
<p>Encryption is enabled by supplying any of the encryption related options.</p>
<p>An owner password is set with the <code>-o</code> option. This password is actually used as encryption key. Many tools for PDF processing ask for this password to disregard any restriction imposed on the PDF document.</p>
<p>If no owner password has been supplied but FOP was asked to apply some restrictions, a random password is used. In this case it is obviously impossiible to disregard restrictions in PDF processing tools.</p>
<p>A user password, supplied with the <code>-u</code> option, will cause the PDF display software to ask the reader for this password in order to view the contents of the document. If no user password was supplied, viewing the content is not restricted.</p>
<p>Further restrictions can be imposed by using the <code>-noprint</code>, <code>-nocopy</code>, <code>-noedit</code> and <code>-noannotations</code> options, which disable printing, copying text, editing in Adobe Acrobat and making annotations, respectively.</p>
<h2 id="embedded">Usage (embedded)</h2>
<p>When FOP is embedded in another Java application you need to set an options map on the renderer. These are the supported options:</p>
<table>
<thead>
<tr>
<th>Option</th>
<th>Description</th>
<th>Values</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr>
<td>ownerPassword</td>
<td>The owner password</td>
<td>String</td>
<td></td>
</tr>
<tr>
<td>userPassword</td>
<td>The user password</td>
<td>String</td>
<td></td>
</tr>
<tr>
<td>allowPrint</td>
<td>Allows/disallows printing of the PDF</td>
<td>"TRUE" or "FALSE"</td>
<td>"TRUE"</td>
</tr>
<tr>
<td>allowCopyContent</td>
<td>Allows/disallows copy/paste of content</td>
<td>"TRUE" or "FALSE"</td>
<td>"TRUE"</td>
</tr>
<tr>
<td>allowEditContent</td>
<td>Allows/disallows editing of content</td>
<td>"TRUE" or "FALSE"</td>
<td>"TRUE"</td>
</tr>
<tr>
<td>allowEditAnnotations</td>
<td>Allows/disallows editing of annotations</td>
<td>"TRUE" or "FALSE"</td>
<td>"TRUE"</td>
</tr>
</tbody>
</table>
<p><note>Encryption is enabled as soon as one of these options is set.</note></p>
<p>An example to enable PDF encryption in Java code:</p>
<div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">org.apache.fop.pdf.PDFEncryptionParams</span><span class="o">;</span>
<span class="o">[..]</span>
<span class="n">FOUserAgent</span> <span class="n">userAgent</span> <span class="o">=</span> <span class="n">fopFactory</span><span class="o">.</span><span class="na">newFOUserAgent</span><span class="o">();</span>
<span class="n">useragent</span><span class="o">.</span><span class="na">getRendererOptions</span><span class="o">().</span><span class="na">put</span><span class="o">(</span><span class="s">&quot;encryption-params&quot;</span><span class="o">,</span> <span class="k">new</span> <span class="n">PDFEncryptionParams</span><span class="o">(</span>
<span class="kc">null</span><span class="o">,</span> <span class="s">&quot;password&quot;</span><span class="o">,</span> <span class="kc">false</span><span class="o">,</span> <span class="kc">false</span><span class="o">,</span> <span class="kc">true</span><span class="o">,</span> <span class="kc">true</span><span class="o">));</span>
<span class="n">Fop</span> <span class="n">fop</span> <span class="o">=</span> <span class="n">fopFactory</span><span class="o">.</span><span class="na">newFop</span><span class="o">(</span><span class="n">MimeConstants</span><span class="o">.</span><span class="na">MIME_PDF</span><span class="o">,</span> <span class="n">userAgent</span><span class="o">);</span>
<span class="o">[..]</span>
</pre></div>
<p>The parameters for the constructor of PDFEncryptionParams are:</p>
<ol>
<li>
<p>userPassword: String, may be null</p>
</li>
<li>
<p>ownerPassword: String, may be null</p>
</li>
<li>
<p>allowPrint: true if printing is allowed</p>
</li>
<li>
<p>allowCopyContent: true if copying content is allowed</p>
</li>
<li>
<p>allowEditContent: true if editing content is allowed</p>
</li>
<li>
<p>allowEditAnnotations: true if editing annotations is allowed</p>
</li>
</ol>
<p>Alternatively, you can set each value separately in the Map provided by FOUserAgent.getRendererOptions() by using the following keys:</p>
<ol>
<li>
<p>user-password: String</p>
</li>
<li>
<p>owner-password: String</p>
</li>
<li>
<p>noprint: Boolean or "true"/"false"</p>
</li>
<li>
<p>nocopy: Boolean or "true"/"false"</p>
</li>
<li>
<p>noedit: Boolean or "true"/"false"</p>
</li>
<li>
<p>noannotations: Boolean or "true"/"false"</p>
</li>
</ol>
<h2 id="Environment">Environment</h2>
<p>In order to use PDF encryption, FOP has to be compiled with cryptography support. Currently, only <a href="https://docs.oracle.com/javase/1.5.0/docs/guide/security/jce/JCERefGuide.html">JCE</a> is supported. JCE is part of JDK 1.4. For earlier JDKs, it can be installed separately. The build process automatically detects JCE presence and installs PDF encryption support if possible, otherwise a stub is compiled in.</p>
<p>Cryptography support must also be present at run time. In particular, a provider for the RC4 cipher is needed. Unfortunately, the sample JCE provider in Sun's JDK 1.4 does <strong>not</strong> provide RC4. If you get a message saying
"Cannot find any provider supporting RC4"
then you don't have the needed infrastructure.</p>
<p>There are several commercial and a few Open Source packages which provide RC4. A pure Java implementation is produced by <a href="http://www.bouncycastle.org/">The Legion of the Bouncy Castle</a>. <a href="http://www.mozilla.org/projects/security/pki/jss/">Mozilla JSS</a> is an interface to a native implementation.</p>
<h2 id="install_crypto">Installing a crypto provider</h2>
<p>The pure Java implementation from <a href="http://www.bouncycastle.org/">Bouncy Castle</a> is easy to install.</p>
<ol>
<li>
<p>Download the binary distribution for your JDK version.</p>
</li>
<li>
<p>Unpack the distribution. Add the jar file to your classpath. A convenient way to use the jar on Linux is to simply drop it into the FOP lib directory, it will be automatically picked up by <code>fop.sh</code>.</p>
</li>
<li>
<p>Open the <code>java.security</code> file and add</p>
<p><code>security.provider.6=org.bouncycastle.jce.provider.BouncyCastleProvider</code>,</p>
<p>preferably at the end of the block defining the other crypto providers. For JDK 1.4 this is detailed on <a href="https://docs.oracle.com/javase/1.5.0/docs/guide/security/jce/JCERefGuide.html#InstallProvider">Sun's web site</a>.</p>
</li>
</ol>
<p>If you have any experience with Mozilla JSS or any other cryptography provider, please post it to the fop-user list.</p>
<div class="clear"></div>
<div id="footer">
<div class="copyright">
<div style="float:left; padding: 7px;">
<a title="Apache Software Foundation" href="http://www.apache.org"><img id="asf-feather-logo" alt="Apache Software Foundation" src="/images/asf_logo_url.png" width="200" /></a>
</div>
<p>
Copyright &copy; 2016 The Apache Software Foundation, Licensed under
the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
<br />
Apache, Apache XML Graphics, Apache FOP, Apache Batik, the Apache feather logo, and the
Apache XML Graphics logos are trademarks of <a href="http://www.apache.org">The Apache
Software Foundation</a>. All other marks mentioned may be trademarks or registered
trademarks of their respective owners.
<br />
</p>
</div>
</div>
</body>
</html>