xmlgraphics-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r813018 [9/24] - in /websites/staging/xmlgraphics/trunk/content: ./ fop/ fop/0.95/ fop/0.95/images/ fop/1.0/ fop/1.0/images/ fop/dev/ fop/dev/design/ fop/dev/fo/ fop/dev/svg/ fop/fo/ fop/trunk/ fop/trunk/images/
Date Sun, 15 Apr 2012 05:39:54 GMT
Added: websites/staging/xmlgraphics/trunk/content/fop/1.0/intermediate.html
==============================================================================
--- websites/staging/xmlgraphics/trunk/content/fop/1.0/intermediate.html (added)
+++ websites/staging/xmlgraphics/trunk/content/fop/1.0/intermediate.html Sun Apr 15 05:39:50 2012
@@ -0,0 +1,209 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <title>Apache™ FOP: Intermediate Format</title>
+
+    <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="http://www.apache.org/css/code.css">
+-->
+    <link href="/css/xmlgraphics.css" rel="stylesheet" type="text/css">
+
+    </style>
+
+    
+
+    
+    
+  </head>
+
+  <body>
+	  <div id="banner">&nbsp;
+	  </div>
+
+	  <div id="navigation">
+	  <h1 id="xml-graphics">XML Graphics</h1>
+<ul>
+<li><a href="/">Overview</a></li>
+<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="http://www.apache.org/foundation/sponsorship.html">ASF Sponsorship Program</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">ASF Thanks</a></li>
+</ul>
+<h1 id="subprojects">Subprojects</h1>
+<ul>
+<li><a href="/batik/">Batik</a></li>
+<li><a href="/fop/">FOP</a></li>
+<li><a href="/commons/">Commons</a></li>
+</ul>
+<form name="search" id="search" action="http://www.google.com/search" method="get">
+  <input value="xmlgraphics.apache.org" name="sitesearch" type="hidden"/>
+  <input type="text" name="q" id="query" /><br />
+  <input type="submit" id="submit" value="Search" />
+</form>
+	  </div>
+	
+	  <div id="bannertext">
+        <a href="/"><img src="/images/apache-xml-graphics.gif" alt="The Apache XML Graphics Project" width="220" heigh="51" /></a>
+        <h1>Apache™ FOP: Intermediate Format</h1>
+      </div>
+        <p><a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/fop/">Fop</a>&nbsp;&raquo&nbsp;<a href="/fop/1.0/">1.0</a></p>
+      </div>
+      <div id="content" class="grid_16"><div class="section-content"><p><version>$Revision: 1298724 $</version>
+Please note that the intermediate formats described here are <strong>advanced features</strong> and can be ignored by most users of Apache™ FOP.</p>
+<h1 id="introduction">Introduction</h1>
+<p>Apache FOP now provides two different so-called intermediate formats. The first one (let's call it the area tree XML format) is basically a 1:1 XML representation of FOP's area tree as generated by the layout engine. The area tree is conceptually defined in the <a href="http://www.w3.org/TR/2001/REC-xsl-20011015/slice1.html#section-N742-Formatting">XSL-FO specification in chapter 1.1.2</a> . Even though the area tree is mentioned in the XSL-FO specification, this part is not standardized. Therefore, the area tree XML format is a FOP-proprietary XML file format. The area tree XML can be generated through the area tree XML Renderer (the XMLRenderer).</p>
+<p>The second intermediate format (which we shall name exactly like this: the intermediate format) is a recent addition which tries to meet a slightly different set of goals. It is highly optimized for speed.</p>
+<p>The intermediate format can be used to generate intermediate documents that are modified before they are finally rendered to their ultimate output format. Modifications include adjusting and changing trait values, adding or modifying area objects, inserting prefabricated pages, overlays, imposition (n-up, rotation, scaling etc.). Multiple IF files can be combined to a single output file.</p>
+<h1 id="which-if">Which Intermediate Format to choose?</h1>
+<p>Both formats have their use cases, so the choice you will make will depend on your particular situation. Here is a list of strengths and use cases for both formats:</p>
+<h2 id="strengths-at">Area Tree XML (AT XML)</h2>
+<ul>
+<li>
+<p>1:1 representation of FOP's area tree in XML.</p>
+</li>
+<li>
+<p>Contains more structure information than the new intermediate format.</p>
+</li>
+<li>
+<p>Used in FOP's layout engine test suite for regression testing.</p>
+</li>
+</ul>
+<h2 id="strengths-if">Intermediate Format (IF)</h2>
+<ul>
+<li>
+<p>Highly optimized for speed.</p>
+</li>
+<li>
+<p>Smaller XML files.</p>
+</li>
+<li>
+<p>Easier to post-process.</p>
+</li>
+<li>
+<p>XML Schema is available.</p>
+</li>
+<li>
+<p>Recommended for use cases where documents are formatted concurrently and later concatenated to a single print job.</p>
+</li>
+</ul>
+<p>More technical information about the two formats can be found on the <a href="http://wiki.apache.org/xmlgraphics-fop/AreaTreeIntermediateXml/NewDesign">FOP Wiki</a> .</p>
+<h1 id="architecture">Architectural Overview</h1>
+<p><figure alt="Diagram with an architectural overview over the intermediate formats" src="images/if-architecture-overview.png"></figure></p>
+<h1 id="usage">Usage of the Area Tree XML format (AT XML)</h1>
+<p>As already mentioned, the area tree XML format is generated by using the <strong>XMLRenderer</strong> (MIME type: <strong>application/X-fop-areatree</strong> ). So, you basically set the right MIME type for the output format and process your FO files as if you would create a PDF file.</p>
+<p>However, there is an important detail to consider: The various Renderers don't all use the same font sources. To be able to create the right area tree for the ultimate output format, you need to create the area tree XML file using the right font setup. This is achieved by telling the XMLRenderer to mimic another renderer. This is done by calling the XMLRenderer's mimicRenderer() method with an instance of the ultimate target renderer as the single parameter. This has a consequence: An area tree XML file rendered with the Java2DRenderer may not look as expected when it was actually generated for the PDF renderer. For renderers that use the same font setup, this restriction does not apply (PDF and PS, for example). Generating the area tree XML format file is the first step.</p>
+<p>The second step is to reparse the file using the <strong>AreaTreeParser</strong> which is found in the org.apache.fop.area package. The pages retrieved from the area tree XML file are added to an AreaTreeModel instance from where they are normally rendered using one of the available Renderer implementations. You can find examples for the area tree XML processing in the <a href="http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/examples/embedding/java/embedding/intermediate/"></a> directory in the FOP distribution.</p>
+<p>The basic pattern to parse the area tree XML format looks like this:</p>
+<p>FopFactory fopFactory = FopFactory.newInstance();    <br />
+</p>
+<p>// Setup output
+OutputStream out = new java.io.FileOutputStream(pdffile);
+out = new java.io.BufferedOutputStream(out);
+try {
+    //Setup fonts and user agent
+    FontInfo fontInfo = new FontInfo();
+    FOUserAgent userAgent = fopFactory.newFOUserAgent();</p>
+<div class="codehilite"><pre><span class="sr">//</span><span class="n">Construct</span> <span class="n">the</span> <span class="n">AreaTreeModel</span> <span class="n">that</span> <span class="n">will</span> <span class="n">received</span> <span class="n">the</span> <span class="n">individual</span> <span class="n">pages</span>
+<span class="n">AreaTreeModel</span> <span class="n">treeModel</span> <span class="o">=</span> <span class="k">new</span> <span class="n">RenderPagesModel</span><span class="p">(</span><span class="n">userAgent</span><span class="p">,</span> 
+        <span class="n">MimeConstants</span><span class="o">.</span><span class="n">MIME_PDF</span><span class="p">,</span> <span class="n">fontInfo</span><span class="p">,</span> <span class="n">out</span><span class="p">);</span>
+
+<span class="sr">//</span><span class="n">Parse</span> <span class="n">the</span> <span class="n">area</span> <span class="n">tree</span> <span class="n">file</span> <span class="n">into</span> <span class="n">the</span> <span class="n">area</span> <span class="n">tree</span>
+<span class="n">AreaTreeParser</span> <span class="n">parser</span> <span class="o">=</span> <span class="k">new</span> <span class="n">AreaTreeParser</span><span class="p">();</span>
+<span class="n">Source</span> <span class="n">src</span> <span class="o">=</span> <span class="k">new</span> <span class="n">StreamSource</span><span class="p">(</span><span class="n">myIFFile</span><span class="p">);</span>
+<span class="n">parser</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">src</span><span class="p">,</span> <span class="n">treeModel</span><span class="p">,</span> <span class="n">userAgent</span><span class="p">);</span>
+
+<span class="sr">//</span><span class="n">Signal</span> <span class="n">the</span> <span class="n">end</span> <span class="n">of</span> <span class="n">the</span> <span class="n">processing</span><span class="o">.</span> <span class="n">The</span> <span class="n">renderer</span> <span class="n">can</span> <span class="n">finalize</span> <span class="n">the</span> <span class="n">target</span> <span class="n">document</span><span class="o">.</span>
+<span class="n">treeModel</span><span class="o">.</span><span class="n">endDocument</span><span class="p">();</span>
+</pre></div>
+
+
+<p>} finally {
+    out.close();
+}
+This example simply reads an area tree file and renders it to a PDF file. Please note, that in normal FOP operation you're shielded from having to instantiate the FontInfo object yourself. This is normally a task of the AreaTreeHandler which is not present in this scenario. The same applies to the AreaTreeModel instance, in this case an instance of a subclass called RenderPagesModel. RenderPagesModel is ideal in this case as it has very little overhead processing the individual pages. An important line in the example is the call to <code>endDocument()</code> on the AreaTreeModel. This lets the Renderer know that the processing is now finished.</p>
+<p>The area tree XML format can also be used from the <a href="running.html#standalone-start">command-line</a> by using the "-atin" parameter for specifying the area tree XML as input file. You can also specify a "mimic renderer" by inserting a MIME type between "-at" and the output file.</p>
+<h2 id="concat">Concatenating Documents</h2>
+<p>This initial example is obviously not very useful. It would be faster to create the PDF file directly. As the <a href="http://svn.apache.org/repos/asf/xmlgraphics/fop/trunk/examples/embedding/java/embedding/atxml/ExampleConcat.java">ExampleConcat.java</a> example shows you can easily parse multiple area tree files in a row and add the parsed pages to the same AreaTreeModel instance which essentially concatenates all the input document to one single output document.</p>
+<h2 id="modifying">Modifying Documents</h2>
+<p>One of the most important use cases for this format is obviously modifying the area tree XML before finally rendering it to the target format. You can easily use XSLT to process the AT XML file according to your needs. Please note, that we will currently not formally describe the area tree XML format. You need to have a good understanding its structure so you don't create any non-parseable files. We may add an XML Schema and more detailed documentation at a later time. You're invited to help us with that.
+The area tree XML format is sensitive to changes in whitespace. If you're not careful, the modified file may not render correctly.</p>
+<h2 id="advanced">Advanced Use</h2>
+<p>The generation of the area tree format as well as it parsing process has been designed to allow for maximum flexibility and optimization. Please note that you can call <code>setTransformerHandler()</code> on XMLRenderer to give the XMLRenderer your own TransformerHandler instance in case you would like to do custom serialization (to a W3C DOM, for example) and/or to directly modify the area tree using XSLT. The AreaTreeParser on the other side allows you to retrieve a ContentHandler instance where you can manually send SAX events to to start the parsing process (see <code>getContentHandler()</code> ).</p>
+<h1 id="usage-if">Usage of the Intermediate Format (IF)</h1>
+<p>The Intermediate Format (IF) is generated by the <strong>IFSerializer</strong> (MIME type: <strong>application/X-fop-intermediate-format</strong> ). So, you basically set the right MIME type for the output format and process your FO files as if you would create a PDF file.</p>
+<p>The IFSerializer is an implementation of the <strong>IFDocumentHandler</strong> and <strong>IFPainter</strong> interfaces. The <strong>IFRenderer</strong> class is responsible for converting FOP's area tree into calls against these two interfaces.</p>
+<ul>
+<li>
+<p>IFDocumentHandler: This interface is used on the document-level and defines the overall structure of the Intermediate Format.</p>
+</li>
+<li>
+<p>IFPainter: This interface is used to generate graphical page content like text, images and borders.</p>
+</li>
+</ul>
+<p>As with the AT XML, there is an important detail to consider: The various output implementations don't all use the same font sources. To be able to create the right IF for the ultimate output file, you need to create the IF file using the right font setup. This is achieved by telling the IFRenderer (responsible for converting the area tree into calls to the IFDocumentHandler and IFPainter interfaces) to mimic another renderer. This is done by calling the IFSerializer's mimicDocumentHandler() method with an instance of the ultimate target document handler as the single parameter. This has a consequence: An IF file rendered with the Java2DDocumentHandler may not look as expected when it was actually generated for the PDF implementation. For implementations that use the same font setup, this restriction does not apply (PDF and PS, for example). Generating the Intermediate Format file is the first step.</p>
+<p>The second step is to reparse the file using the <strong>IFParser</strong> which is found in the org.apache.fop.render.intermediate package. The IFParser simply takes an IFDocumentHandler instance against which it generates the appropriate calls. The IFParser is implemented as a SAX ContentHandler so you're free to choose the method for post-processing the IF file(s). You can use XSLT or write SAX- or DOM-based code to manipulate the contents. You can find examples for the Intermediate Format processing in the <a href="http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/examples/embedding/java/embedding/intermediate/"></a> directory in the FOP distribution.</p>
+<p>The basic pattern to parse the intermediate format looks like this:</p>
+<p>FopFactory fopFactory = FopFactory.newInstance();</p>
+<p>// Setup output
+OutputStream out = new java.io.FileOutputStream(pdffile);
+out = new java.io.BufferedOutputStream(out);
+try {
+    //Setup user agent
+    FOUserAgent userAgent = fopFactory.newFOUserAgent();</p>
+<div class="codehilite"><pre><span class="sr">//</span><span class="n">Create</span> <span class="n">IFDocumentHandler</span> <span class="n">instance</span>
+<span class="n">IFDocumentHandler</span> <span class="n">targetHandler</span><span class="p">;</span>
+<span class="n">String</span> <span class="n">mime</span> <span class="o">=</span> <span class="n">MimeConstants</span><span class="o">.</span><span class="n">MIME_PDF</span><span class="p">;</span>
+<span class="n">targetHandler</span> <span class="o">=</span> <span class="n">fopFactory</span><span class="o">.</span><span class="n">getRendererFactory</span><span class="p">()</span><span class="o">.</span><span class="n">createDocumentHandler</span><span class="p">(</span>
+        <span class="n">userAgent</span><span class="p">,</span> <span class="n">mime</span><span class="p">);</span>
+
+<span class="sr">//</span><span class="n">Setup</span> <span class="n">fonts</span>
+<span class="n">IFUtil</span><span class="o">.</span><span class="n">setupFonts</span><span class="p">(</span><span class="n">targetHandler</span><span class="p">);</span>
+
+<span class="sr">//</span><span class="n">Tell</span> <span class="n">the</span> <span class="n">target</span> <span class="n">handler</span> <span class="n">where</span> <span class="n">to</span> <span class="nb">write</span> <span class="n">the</span> <span class="n">PDF</span> <span class="n">to</span>
+<span class="n">targetHandler</span><span class="o">.</span><span class="n">setResult</span><span class="p">(</span><span class="k">new</span> <span class="n">StreamResult</span><span class="p">(</span><span class="n">pdffile</span><span class="p">));</span>
+
+<span class="sr">//</span><span class="n">Parse</span> <span class="n">the</span> <span class="n">IF</span> <span class="n">file</span>
+<span class="n">IFParser</span> <span class="n">parser</span> <span class="o">=</span> <span class="k">new</span> <span class="n">IFParser</span><span class="p">();</span>
+<span class="n">Source</span> <span class="n">src</span> <span class="o">=</span> <span class="k">new</span> <span class="n">StreamSource</span><span class="p">(</span><span class="n">myIFFile</span><span class="p">);</span>
+<span class="n">parser</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">src</span><span class="p">,</span> <span class="n">targetHandler</span><span class="p">,</span> <span class="n">userAgent</span><span class="p">);</span>
+</pre></div>
+
+
+<p>} finally {
+    out.close();
+}
+This example simply reads an intermediate file and renders it to a PDF file. Here IFParser.parse() is used, but you can also just get a SAX ContentHandler by using the IFParser.getContentHandler() method.</p>
+<h2 id="concat-if">Concatenating Documents</h2>
+<p>This initial example is obviously not very useful. It would be faster to create the PDF file directly (without the intermediate step). As the <a href="http://svn.apache.org/repos/asf/xmlgraphics/fop/trunk/examples/embedding/java/embedding/intermediate/ExampleConcat.java">ExampleConcat.java</a> example shows you can easily parse multiple intermediate files in a row and use the IFConcatenator class to concatenate page sequences from multiple source files to a single output file. This particular example does the concatenation on the level of the IFDocumentHandler interface. You could also do this in XSLT or using SAX on the XML level. Whatever suits your process best.</p>
+<h2 id="modifying-if">Modifying Documents</h2>
+<p>One of the most important use cases for this format is obviously modifying the intermediate format before finally rendering it to the target format. You can easily use XSLT to process the IF file according to your needs.</p>
+<p>There is an XML Schema (located under <a href="http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/documentation/intermediate-format-ng/">src/documentation/intermediate-format-ng</a> ) that helps you verify that your modified content is correct.</p>
+<p>For certain output formats there's a caveat: Formats like AFP and PCL do not support arbitrary transformations on the IF's "viewport" and "g" elements. Possible are only rotations in 90 degree steps and translations.</p>
+<h2 id="advanced-if">Advanced Use</h2>
+<p>The generation of the intermediate format as well as it parsing process has been designed to allow for maximum flexibility and optimization. So rather than just passing in a StreamResult to IFSerializer's setResult() method, you can also use a SAXResult or a DOMResult. And as you've already seen , the IFParser on the other side allows you to retrieve a ContentHandler instance where you can manually send SAX events to start the parsing process (see <code>getContentHandler()</code> ).</p></div></div>
+      <div class="clear"></div>
+
+	  <div id="footer">
+		<a alt="Apache Software Foundation" href="http://www.apache.org">
+		  <img id="asf-logo" alt="Apache Software Foundation" src="/images/feather-small.gif"/ width="100">
+		</a>
+		<div class="copyright">
+		  <p>
+			Copyright &copy; 2011 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, 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>

Added: websites/staging/xmlgraphics/trunk/content/fop/1.0/knownissues_overview.html
==============================================================================
--- websites/staging/xmlgraphics/trunk/content/fop/1.0/knownissues_overview.html (added)
+++ websites/staging/xmlgraphics/trunk/content/fop/1.0/knownissues_overview.html Sun Apr 15 05:39:50 2012
@@ -0,0 +1,193 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <title>Apache™ FOP: Known Issues</title>
+
+    <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="http://www.apache.org/css/code.css">
+-->
+    <link href="/css/xmlgraphics.css" rel="stylesheet" type="text/css">
+
+    </style>
+
+    
+
+    
+    
+  </head>
+
+  <body>
+	  <div id="banner">&nbsp;
+	  </div>
+
+	  <div id="navigation">
+	  <h1 id="xml-graphics">XML Graphics</h1>
+<ul>
+<li><a href="/">Overview</a></li>
+<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="http://www.apache.org/foundation/sponsorship.html">ASF Sponsorship Program</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">ASF Thanks</a></li>
+</ul>
+<h1 id="subprojects">Subprojects</h1>
+<ul>
+<li><a href="/batik/">Batik</a></li>
+<li><a href="/fop/">FOP</a></li>
+<li><a href="/commons/">Commons</a></li>
+</ul>
+<form name="search" id="search" action="http://www.google.com/search" method="get">
+  <input value="xmlgraphics.apache.org" name="sitesearch" type="hidden"/>
+  <input type="text" name="q" id="query" /><br />
+  <input type="submit" id="submit" value="Search" />
+</form>
+	  </div>
+	
+	  <div id="bannertext">
+        <a href="/"><img src="/images/apache-xml-graphics.gif" alt="The Apache XML Graphics Project" width="220" heigh="51" /></a>
+        <h1>Apache™ FOP: Known Issues</h1>
+      </div>
+        <p><a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/fop/">Fop</a>&nbsp;&raquo&nbsp;<a href="/fop/1.0/">1.0</a></p>
+      </div>
+      <div id="content" class="grid_16"><div class="section-content"><p><version>$Revision: 1298724 $</version></p>
+<h1 id="known-issues-knownissues">Known issues # {#Known+issues}</h1>
+<p>This page lists currently known issues in the current release.</p>
+<p>For additional information on known issues in Apache™ FOP, please have a look at the following pages, too:</p>
+<ul>
+<li>
+<p><a href="../bugs.html">the bug list in Bugzilla</a> </p>
+</li>
+<li>
+<p><a href="http://wiki.apache.org/xmlgraphics-fop/FOPProjectTasks">the task list in the Wiki</a> </p>
+</li>
+</ul>
+<p>Apache™ FOP has an extensive automated testing infrastructure. Parts of this infrastructure are several sets of test cases. When a test case is listed in disabled-testcases.xml it is disabled in the JUnit tests during the normal build process. This indicates a problem in the current codebase. When a bug is fixed or a missing feature is added the entry for the relevant test case(s) are removed.</p>
+<h2 id="fo-tree-fotree">FO Tree ## {#FO+Tree}</h2>
+<p>This section lists disabled test cases in the test suite for the FO tree tests, at the time of the release.</p>
+<p><strong>demo-test-failure.fo</strong> (demo test failure):<br></br> <em>TODO: Add missing description in disabled-testcases.xml!</em> </p>
+<p><strong>from-table-column_marker.fo</strong> (Markers and core function evaluation):<br></br>The code currently evaluates this function according to the column in which the marker appears in the source document, rather than the column it is retrieved in.</p>
+<h2 id="layout-engine-layoutengine">Layout Engine ## {#Layout+Engine}</h2>
+<p>This section lists disabled test cases in the test suite for the layout engine tests, at the time of the release.</p>
+<p><strong>basic-link_external-destination_2.xml</strong> (External link around an SVG not properly sized):<br></br>The bpd trait of the inlineparent area for the basic-link is not sized correctly if it wraps an image that is higher than the nominal line.</p>
+<p><strong>block-container_space-before_space-after_3.xml</strong> (Auto-height block-containers produce fences):<br></br>Block-containers with no height currently don't create a fence for spaces as they should (they behave like a normal block).</p>
+<p><strong>block_font-stretch.xml</strong> (font-stretch NYI):<br></br>Font-stretch is not implemented, yet.</p>
+<p><strong>block_hyphenation_linefeed_preserve.xml</strong> (Hyphenation with preserved linefeeds):<br></br>When hyphenation is enabled and linefeeds are preserved, the text is output multiple times.</p>
+<p><strong>block_linefeed-treatment.xml</strong> (linefeed-treatment):<br></br>Preserved linefeeds in a fo:character are not handled correctly.</p>
+<p><strong>block_white-space-treatment_3.xml</strong> (white-space-treatment):<br></br>White space handling incorrectly stops at fo:inline boundaries when it comes to formatter generated line breaks.</p>
+<p><strong>block_space-before_space-after_8.xml</strong> (Empty blocks produce fences):<br></br>An empty block currently produces a fence for stacking constraints which it shouldn't.</p>
+<p><strong>block_white-space_nbsp_2.xml</strong> (block white-space nbsp 2):<br></br>The nbsp given as an fo:character is not adjustable and therefore the justification does not work in this case.</p>
+<p><strong>block_word-spacing.xml</strong> (block word-spacing):<br></br>Word-spacing may not work as expected.</p>
+<p><strong>block_word-spacing_text-align_justify.xml</strong> (block word-spacing text-align justify):<br></br>Word-spacing may not work as expected.</p>
+<p><strong>external-graphic_oversized.xml</strong> (external-graphic don't shrink):<br></br>Images currently don't shrink so they fit on a page when they are too big and shrinking is allowed to happen (min/opt/max).</p>
+<p><strong>external-graphic_src_uri.xml</strong> (Test case with HTTP URL):<br></br>Doesn't work behind a proxy which requires authorization.</p>
+<p><strong>footnote_space-resolution.xml</strong> (Space Resolution in foot note area):<br></br>Space resolution does not work between footnote regions.</p>
+<p><strong>inline_block_nested_3.xml</strong> (NPE for table inside an inline):<br></br>Placing a table as a child of an fo:inline produces a NullPointerException.</p>
+<p><strong>inline-container_block_nested.xml</strong> (inline-container is not implemented, yet.):<br></br>inline-container is not implemented, yet. Content of an inline-container will get swallowed. The test case contains no checks.</p>
+<p><strong>inline-container_border_padding.xml</strong> (inline-container is not implemented, yet.):<br></br>inline-container is not implemented, yet. Content of an inline-container will get swallowed.</p>
+<p><strong>inline_letter-spacing.xml</strong> (inline letter-spacing):<br></br>Letter-spacing may not work as expected within fo:inline.</p>
+<p><strong>inline_word-spacing.xml</strong> (inline word-spacing):<br></br>Word-spacing may not work as expected within fo:inline.</p>
+<p><strong>inline_word-spacing_text-align_justify.xml</strong> (inline word-spacing text-align justify):<br></br> <em>TODO: Add missing description in disabled-testcases.xml!</em> </p>
+<p><strong>leader-alignment.xml</strong> (leader-alignment NYI):<br></br>Leader-alignment is not yet implemented.</p>
+<p><strong>leader_leader-pattern_use-content_bug.xml</strong> (leader-pattern="use-content": Problem with line height):<br></br>Line height is not correctly calculated for use-content leaders whose height is larger than the rest of the line.<br></br>See also: <a href="http://www.nabble.com/leaders-with-leader-pattern%3D%22use-content%22-t546244.html">http://www.nabble.com/leaders-with-leader-pattern%3D%22use-content%22-t546244.html</a> </p>
+<p><strong>page-breaking_4.xml</strong> (Page breaking doesn't deal with IPD changes):<br></br>Page breaking currently doesn't support changing available IPD between pages of a single page-sequence. Element list generation has to be reset to redetermine line breaks in this case.</p>
+<p><strong>page-breaking_6.xml</strong> (Overflow handing is incomplete):<br></br>Line breaking is not 100% correct when there's too little space. Overflows are not detected and warned.</p>
+<p><strong>page-height_indefinite_simple.xml</strong> (Indefinite page height handling is imcomplete):<br></br>A RuntimeException is thrown for a page of indefinite height. Lots of warnings.</p>
+<p><strong>page-number-citation_background-image.xml</strong> (page-number-citation: Problem with background-image):<br></br>Background-images on page-number-citations are not placed correctly.</p>
+<p><strong>page-number-citation_complex_1.xml</strong> (IDs are not working on all FO elements):<br></br>The "id" attributes are not properly handled for all block-level FO elements.</p>
+<p><strong>page-number-citation_complex_2.xml</strong> (IDs are not working on all FO elements):<br></br>The "id" attributes are not properly handled for all inline-level FO elements.</p>
+<p><strong>region-body_column-count_footnote.xml</strong> (Footnotes in multi-column documents):<br></br>Footnotes may overlap with text of the region-body in multi-column documents.</p>
+<p><strong>region-body_column-count_balance_4col.xml</strong> (Column Balancing problems):<br></br>Situation in a 4-column document where the column balancing doesn't work and even causes some content to disappear.</p>
+<p><strong>region-body_column-count_bug36356.xml</strong> (Column Balancing problems):<br></br>Column balancing doesn't work as expected.</p>
+<p><strong>table-cell_empty_area_with_marker.xml</strong> (table-cell empty area with marker.xml):<br></br>A table-cell producing an empty area does currently not add any markers to a page. See TODO entry in AreaAdditionUtil.</p>
+<p><strong>table_border-width_conditionality.xml</strong> (Border conditionality on table):<br></br>The code should be ok, but the test case uses shorthands and therefore is probably not expressing the indended outcome according to the spec. The test case should be revisited.</p>
+<p><strong>block_shy_linebreaking_hyph.xml</strong> (Soft hyphen with normal hyphenation enabled):<br></br>A soft hyphen should be a preferred as break compared to a normal hyphenation point but is not.</p>
+<p><strong>keep_within-page_multi-column_overflow.xml</strong> (Page-keep not respected in multi-column layout):<br></br>The block should cause overflow in the last column on the page, rather than be broken.</p>
+<h2 id="other-known-issues-otherknownissues">Other known issues ## {#Other+known+issues}</h2>
+<p>This section lists other known issues.</p>
+<ul>
+<li>
+<p>MIF and SVG output support have not been restored, yet.</p>
+</li>
+<li>
+<p>RTF output is inferior to other output formats supported by FOP. For details, please see the "Output Targets" page of the release you're using.</p>
+</li>
+<li>
+<p>Auto table layout is not implemented, yet.</p>
+</li>
+<li>
+<p>Footnotes may overlap with text of the region-body in multi-column documents.</p>
+</li>
+<li>
+<p>Space resolution does not work between footnote regions.</p>
+</li>
+<li>
+<p>There's a problem involving nested block-containers and reference-orientation 180/-180 (Bugzilla #36391)</p>
+</li>
+<li>
+<p>block-containers with no height currently don't create a fence for spaces as they should (they behave like a normal block).</p>
+</li>
+<li>
+<p>Preserved linefeeds in fo:character are not handled correctly.</p>
+</li>
+<li>
+<p>An empty block currently produces a fence for stacking constraints which it shouldn't.</p>
+</li>
+<li>
+<p>There are several small problems around white space handling.</p>
+</li>
+<li>
+<p>Images currently don't shrink so they fit on a page when they are too big and shrinking is allowed to happen.</p>
+</li>
+<li>
+<p>inline-container may not work as expected.</p>
+</li>
+<li>
+<p>letter-spacing and word-spacing properties may not work as expected.</p>
+</li>
+<li>
+<p>leaders with leader-pattern="use-content" may not work as expected.</p>
+</li>
+<li>
+<p>keep-with-previous doesn't work inside tables and lists, yet.</p>
+</li>
+<li>
+<p>If two consecutive pages don't have the same available width, the content currently isn't properly fit into the available space on the new page.</p>
+</li>
+<li>
+<p>background-images on page-number-citations are not placed correctly.</p>
+</li>
+<li>
+<p>Not all FO elements can be referenced by their "id", most notably: table-body, table-header, table-footer and table-row.</p>
+</li>
+<li>
+<p>Border and padding conditionality are not supported on table-cells, yet.</p>
+</li>
+<li>
+<p>Column balancing in multi-column documents may not work as expected (Bugzilla #36356)</p>
+</li>
+</ul></div></div>
+      <div class="clear"></div>
+
+	  <div id="footer">
+		<a alt="Apache Software Foundation" href="http://www.apache.org">
+		  <img id="asf-logo" alt="Apache Software Foundation" src="/images/feather-small.gif"/ width="100">
+		</a>
+		<div class="copyright">
+		  <p>
+			Copyright &copy; 2011 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, 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>

Added: websites/staging/xmlgraphics/trunk/content/fop/1.0/metadata.html
==============================================================================
--- websites/staging/xmlgraphics/trunk/content/fop/1.0/metadata.html (added)
+++ websites/staging/xmlgraphics/trunk/content/fop/1.0/metadata.html Sun Apr 15 05:39:50 2012
@@ -0,0 +1,212 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <title>Apache™ FOP: Metadata</title>
+
+    <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="http://www.apache.org/css/code.css">
+-->
+    <link href="/css/xmlgraphics.css" rel="stylesheet" type="text/css">
+
+    </style>
+
+    
+
+    
+    
+  </head>
+
+  <body>
+	  <div id="banner">&nbsp;
+	  </div>
+
+	  <div id="navigation">
+	  <h1 id="xml-graphics">XML Graphics</h1>
+<ul>
+<li><a href="/">Overview</a></li>
+<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="http://www.apache.org/foundation/sponsorship.html">ASF Sponsorship Program</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">ASF Thanks</a></li>
+</ul>
+<h1 id="subprojects">Subprojects</h1>
+<ul>
+<li><a href="/batik/">Batik</a></li>
+<li><a href="/fop/">FOP</a></li>
+<li><a href="/commons/">Commons</a></li>
+</ul>
+<form name="search" id="search" action="http://www.google.com/search" method="get">
+  <input value="xmlgraphics.apache.org" name="sitesearch" type="hidden"/>
+  <input type="text" name="q" id="query" /><br />
+  <input type="submit" id="submit" value="Search" />
+</form>
+	  </div>
+	
+	  <div id="bannertext">
+        <a href="/"><img src="/images/apache-xml-graphics.gif" alt="The Apache XML Graphics Project" width="220" heigh="51" /></a>
+        <h1>Apache™ FOP: Metadata</h1>
+      </div>
+        <p><a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/fop/">Fop</a>&nbsp;&raquo&nbsp;<a href="/fop/1.0/">1.0</a></p>
+      </div>
+      <div id="content" class="grid_16"><div class="section-content"><h1 id="overview">Overview</h1>
+<p>Document metadata is an important tool for categorizing and finding documents. Various formats support different kinds of metadata representation and to different levels. One of the more popular and flexible means of representing document or object metadata is <a href="http://www.adobe.com/products/xmp/">XMP (eXtensible Metadata Platform, specified by Adobe)</a> . PDF 1.4 introduced the use of XMP. The XMP specification lists recommendation for embedding XMP metdata in other document and image formats. Given its flexibility it makes sense to make use this approach in the XSL-FO context. Unfortunately, unlike SVG which also refers to XMP, XSL-FO doesn't recommend a preferred way of specifying document and object metadata. Therefore, there's no portable way to represent metadata in XSL-FO documents. Each implementation does it differently.</p>
+<h1 id="xmp-in-fo">Embedding XMP in an XSL-FO document</h1>
+<p>As noted above, there's no officially recommended way to embed metadata in XSL-FO. Apache FOP supports embedding XMP in XSL-FO. Currently, only support for document-level metadata is implemented. Object-level metadata will be implemented when there's interest.</p>
+<p>Document-level metadata can be specified in the <code>fo:declarations</code> element. XMP specification recommends to use <code>x:xmpmeta</code> , <code>rdf:RDF</code> , and <code>rdf:Description</code> elements as shown in example below. Both <code>x:xmpmeta</code> and <code>rdf:RDF</code> elements are recognized as the top-level element introducing an XMP fragment (as per the XMP specification).</p>
+<h2 id="xmp-example">Example</h2>
+<p>[..]
+</fo:layout-master-set>
+<fo:declarations>
+  <x:xmpmeta xmlns:x="adobe:ns:meta/">
+    <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+      <rdf:Description rdf:about=""
+          xmlns:dc="http://purl.org/dc/elements/1.1/">
+        <!-- Dublin Core properties go here -->
+        <dc:title>Document title</dc:title>
+        <dc:creator>Document author</dc:creator>
+        <dc:description>Document subject</dc:description>
+      </rdf:Description>
+      <rdf:Description rdf:about=""
+          xmlns:xmp="http://ns.adobe.com/xap/1.0/">
+        <!-- XMP properties go here -->
+        <xmp:CreatorTool>Tool used to make the PDF</xmp:CreatorTool>
+      </rdf:Description>
+    </rdf:RDF>
+  </x:xmpmeta>
+</fo:declarations>
+&lt;fo:page-sequence ...
+[..] <code>fo:declarations</code>  <strong>must</strong> be declared after <code>fo:layout-master-set</code> and before the first <code>page-sequence</code> .</p>
+<h1 id="xmp-impl-in-fop">Implementation in Apache FOP</h1>
+<p>Currently, XMP support is only available for PDF output.</p>
+<p>Originally, you could set some metadata information through FOP's FOUserAgent by using its set*() methods (like setTitle(String) or setAuthor(String). These values are directly used to set value in the PDF Info object. Since PDF 1.4, adding metadata as an XMP document to a PDF is possible. That means that there are now two mechanisms in PDF that hold metadata.</p>
+<p>Apache FOP now synchronizes the Info and the Metadata object in PDF, i.e. when you set the title and the author through the FOUserAgent, the two values will end up in the (old) Info object and in the new Metadata object as XMP content. If instead of FOUserAgent, you embed XMP metadata in the XSL-FO document (as shown above), the XMP metadata will be used as-is in the PDF Metadata object and some values from the XMP metadata will be copied to the Info object to maintain backwards-compatibility for PDF readers that don't support XMP metadata.</p>
+<p>The mapping between the Info and the Metadata object used by Apache FOP comes from the <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=38920">PDF/A-1 specification</a> . For convenience, here's the mapping table:</p>
+<table>
+<thead>
+<tr>
+<th>Document information dictionary</th>
+<th>XMP</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>Entry</td>
+<td>PDF type</td>
+</tr>
+<tr>
+<td>-------</td>
+<td>----------</td>
+</tr>
+<tr>
+<td>Title</td>
+<td>text string</td>
+</tr>
+<tr>
+<td>Author</td>
+<td>text string</td>
+</tr>
+<tr>
+<td>Subject</td>
+<td>text string</td>
+</tr>
+<tr>
+<td>Keywords</td>
+<td>text string</td>
+</tr>
+<tr>
+<td>Creator</td>
+<td>text string</td>
+</tr>
+<tr>
+<td>Producer</td>
+<td>text string</td>
+</tr>
+<tr>
+<td>CreationDate</td>
+<td>date</td>
+</tr>
+<tr>
+<td>ModDate</td>
+<td>date</td>
+</tr>
+<tr>
+<td>"Internal" in the Category column means that the user should not set this value. It is set by the application.The "Subject" used to be mapped to <code>dc:subject</code> in the initial publication of PDF/A-1 (ISO 19005-1). In the <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=45613">Technical Corrigendum 1</a> this was changed to map to <code>dc:description["x-default"]</code> .</td>
+<td></td>
+</tr>
+<tr>
+<td id="namespaces">## Namespaces</td>
+<td></td>
+</tr>
+</tbody>
+</table>
+<p>Metadata is made of property sets where each property set uses a different namespace URI.</p>
+<p>The following is a listing of namespaces that Apache FOP recognizes and acts upon, mostly to synchronize the XMP metadata with the PDF Info dictionary:</p>
+<table>
+<thead>
+<tr>
+<th>Set/Schema</th>
+<th>Namespace Prefix</th>
+<th>Namespace URI</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>Dublin Core</td>
+<td>dc</td>
+<td>http://purl.org/dc/elements/1.1/</td>
+</tr>
+<tr>
+<td>XMP Basic</td>
+<td>xmp</td>
+<td>http://ns.adobe.com/xap/1.0/</td>
+</tr>
+<tr>
+<td>Adobe PDF Schema</td>
+<td>pdf</td>
+<td>http://ns.adobe.com/pdf/1.3/</td>
+</tr>
+</tbody>
+</table>
+<p>Please refer to the <a href="http://partners.adobe.com/public/developer/en/xmp/sdk/XMPspecification.pdf">XMP Specification</a> for information on other metadata namespaces.</p>
+<p>Property sets (Namespaces) not listed here are simply passed through to the final document (if supported). That is useful if you want to specify a custom metadata schema.</p>
+<h1 id="links">Links</h1>
+<ul>
+<li>
+<p><a href="http://www.adobe.com/products/xmp/">Adobe's Extensible Metadata Platform (XMP) website</a> </p>
+</li>
+<li>
+<p><a href="http://partners.adobe.com/public/developer/en/xmp/sdk/XMPspecification.pdf">Adobe XMP Specification</a> </p>
+</li>
+<li>
+<p><a href="http://partners.adobe.com/public/developer/en/xmp/sdk/XMPspecification.pdf">Adobe XMP Specification</a> </p>
+</li>
+<li>
+<p><a href="http://dublincore.org/">http://dublincore.org/</a> </p>
+</li>
+</ul></div></div>
+      <div class="clear"></div>
+
+	  <div id="footer">
+		<a alt="Apache Software Foundation" href="http://www.apache.org">
+		  <img id="asf-logo" alt="Apache Software Foundation" src="/images/feather-small.gif"/ width="100">
+		</a>
+		<div class="copyright">
+		  <p>
+			Copyright &copy; 2011 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, 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>



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: commits-help@xmlgraphics.apache.org


Mime
View raw message