jefft 2003/03/24 18:34:13
Modified: targets/fop faq.html faq.pdf implemented.html
implemented.pdf relnotes.html relnotes.pdf
targets/fop/design architecture.html architecture.pdf
areas.html breakpos.html embedding.html
extending.html fotree.html index.html layout.html
optimise.html properties.html renderers.html
useragent.html
targets/fop/design/alt.design FOPropertySets.html
FoXMLEvent.html SyncedFoXmlEventsBuffer.html
XMLNamespaces.html codedisplay.js
targets/fop/design/alt.design/properties
AbstractPropertyValue.html FOAttributes.html
PropNames.html Property.html PropertyConsts.html
PropertyParser.html PropertySets.html
PropertyTokenizer.html PropertyValue.html
PropertyValueList.html ShorthandPropSets.html
codedisplay.js
targets/fop/dev configuration.html examples.html
extensions.html faq.html faq.pdf fonts.html
index.html svg.html
Added: targets/fop/design/alt.design alt-design-frameset.html
codeframe.html logo.html xml-parsing.pdf
targets/fop/design/alt.design/images/design/alt.design
XML-event-buffer.png
targets/fop/design/alt.design/properties index.html
index.pdf
targets/fop/dev compiling.html download.html tools.html
tools.pdf
Log:
Automatic publish at Tue Mar 25 03:34:16 CET 2003 from
http://forrestbot.cocoondev.org.
Revision Changes Path
1.21 +86 -104 xml-site/targets/fop/faq.html
Index: faq.html
===================================================================
RCS file: /home/cvs/xml-site/targets/fop/faq.html,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- faq.html 17 Mar 2003 23:29:09 -0000 1.20
+++ faq.html 25 Mar 2003 02:34:08 -0000 1.21
@@ -579,15 +579,7 @@
</ul>
</li>
<li>
-<a name="part_developer-menu"></a><a href="#part_developer">9. General
Developer Questions</a>
-<ul>
-<li>
-<a name="javadoc_location-menu"></a><a href="#javadoc_location">How do I get
the javadocs for FOP?</a>
-</li>
-</ul>
-</li>
-<li>
-<a name="part_help-menu"></a><a href="#part_help">10. General suggestions.
How to solve problems.</a>
+<a name="part_help-menu"></a><a href="#part_help">9. General suggestions.
How to solve problems.</a>
<ul>
<li>
<a name="bugs-menu"></a><a href="#bugs">I think I have found a bug in FOP.
What should I do?</a>
@@ -600,13 +592,13 @@
</li>
</ul>
</div>
-<a name="N101A1"></a>
+<a name="N10196"></a>
<h3>Answers</h3>
<div style="margin-left: 0 ; border: 2px">
-<a name="N101A4"></a><a name="part_general"></a>
+<a name="N10199"></a><a name="part_general"></a>
<h4>1. General questions</h4>
<div style="margin-left: 0 ; border: 2px">
-<a name="N101A8"></a><a name="fop_general"></a>
+<a name="N1019D"></a><a name="fop_general"></a>
<h5>1.1. What is FOP?<span style="float: right"><a
href="#fop_general-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -620,7 +612,7 @@
are supported, such as AWT, PCL, text and direct printing.
</p>
</div>
-<a name="N101B7"></a><a name="fop_functions"></a>
+<a name="N101AC"></a><a name="fop_functions"></a>
<h5>1.2. What can I do with FOP?<span style="float: right"><a
href="#fop_functions-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -637,7 +629,7 @@
The library can be used in servlets and other Java applications.
</p>
</div>
-<a name="N101C5"></a><a name="fop_acronym"></a>
+<a name="N101BA"></a><a name="fop_acronym"></a>
<h5>1.3. What does "FOP" stand for?<span style="float: right"><a
href="#fop_acronym-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -646,7 +638,7 @@
<strong>O</strong>bject <strong>P</strong>rocessor
</p>
</div>
-<a name="N101D6"></a><a name="fop_other_apache"></a>
+<a name="N101CB"></a><a name="fop_other_apache"></a>
<h5>1.4. How does FOP interact with other Apache Projects?<span
style="float: right"><a href="#fop_other_apache-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -661,7 +653,7 @@
image</a> into a PDF document.
</p>
</div>
-<a name="N101ED"></a><a name="xsl_def"></a>
+<a name="N101E2"></a><a name="xsl_def"></a>
<h5>1.5. What is XSL?<span style="float: right"><a
href="#xsl_def-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -672,7 +664,7 @@
<strong>L</strong>anguage.
</p>
</div>
-<a name="N10206"></a><a name="XSLFO"></a>
+<a name="N101FB"></a><a name="XSLFO"></a>
<h5>1.6. What is XSLFO?<span style="float: right"><a
href="#XSLFO-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -695,7 +687,7 @@
Synonyms: XSL FO, XSL (FO), XSL:FO, XSL-FO, Formatting Objects
</p>
</div>
-<a name="N1021E"></a><a name="XSLT"></a>
+<a name="N10213"></a><a name="XSLT"></a>
<h5>1.7. What is XSLT?<span style="float: right"><a
href="#XSLT-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -709,7 +701,7 @@
Synonyms: XSL transformation, XSL:T, XSL style sheet.
</p>
</div>
-<a name="N1022C"></a><a name="contribute"></a>
+<a name="N10221"></a><a name="contribute"></a>
<h5>1.8. How can I contribute?<span style="float: right"><a
href="#contribute-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -719,10 +711,10 @@
</p>
</div>
</div>
-<a name="N10238"></a><a name="part_running"></a>
+<a name="N1022D"></a><a name="part_running"></a>
<h4>2. Problems running FOP</h4>
<div style="margin-left: 0 ; border: 2px">
-<a name="N1023C"></a><a name="no_page_master"></a>
+<a name="N10231"></a><a name="no_page_master"></a>
<h5>2.1. I get the error: [ERROR]: 'master-reference' for
'fo:page-sequence'matches no 'simple-page-master' or
'page-sequence-master'<span style="float: right"><a
href="#no_page_master-menu">^</a></span>
@@ -743,7 +735,7 @@
See also <a href="relnotes.html">release notes</a>.
</p>
</div>
-<a name="N1024F"></a><a name="NoClassDefFound"></a>
+<a name="N10244"></a><a name="NoClassDefFound"></a>
<h5>2.2. I get a NoClassDefFound exception.<span style="float: right"><a
href="#NoClassDefFound-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -770,7 +762,7 @@
Java application, check the classpath of the application.
</p>
</div>
-<a name="N10266"></a><a name="NoSuchMethodException"></a>
+<a name="N1025B"></a><a name="NoSuchMethodException"></a>
<h5>2.3. I get a NoSuchMethodException or a NoSuchFieldException
exception.<span style="float: right"><a
href="#NoSuchMethodException-menu">^</a></span>
</h5>
@@ -786,7 +778,7 @@
use a more recent version of Batik.
</p>
</div>
-<a name="N10271"></a><a name="OutOfMemoryException"></a>
+<a name="N10266"></a><a name="OutOfMemoryException"></a>
<h5>2.4. I get an OutOfMemoryException.<span style="float: right"><a
href="#OutOfMemoryException-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -861,7 +853,7 @@
ongoing effort, partially addressed in the <a
href="dev/index.html">redesign</a>.
</p>
</div>
-<a name="N102A4"></a><a name="MalformedURLException"></a>
+<a name="N10299"></a><a name="MalformedURLException"></a>
<h5>2.5. I get a MalformedURLException.<span style="float: right"><a
href="#MalformedURLException-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -891,7 +883,7 @@
URL.
</p>
</div>
-<a name="N102D4"></a><a name="NullPointerException"></a>
+<a name="N102C9"></a><a name="NullPointerException"></a>
<h5>2.6. I get an "[ERROR]: null", or a NullPointerException.<span
style="float: right"><a href="#NullPointerException-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -922,7 +914,7 @@
see more detailed information.
</p>
</div>
-<a name="N102E9"></a><a name="fop_hangs"></a>
+<a name="N102DE"></a><a name="fop_hangs"></a>
<h5>2.7. FOP hangs. FOP does not exit.<span style="float: right"><a
href="#fop_hangs-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -946,7 +938,7 @@
exec'ing FOP, use the library interface instead.
</p>
</div>
-<a name="N102FF"></a><a name="boxoverflow"></a>
+<a name="N102F4"></a><a name="boxoverflow"></a>
<h5>2.8. FOP runs forever, writing lots of ">" to the log.<span
style="float: right"><a href="#boxoverflow-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -961,7 +953,7 @@
remove keep-with-* properties.
</p>
</div>
-<a name="N10307"></a><a name="cannot_find_external-graphics"></a>
+<a name="N102FC"></a><a name="cannot_find_external-graphics"></a>
<h5>2.9. FOP cannot find a file for fo:external-graphics.<span style="float:
right"><a href="#cannot_find_external-graphics-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -978,7 +970,7 @@
working directory of the process which runs FOP.
</p>
</div>
-<a name="N10316"></a><a name="fonts_not_found"></a>
+<a name="N1030B"></a><a name="fonts_not_found"></a>
<h5>2.10. FOP does not find my fonts.<span style="float: right"><a
href="#fonts_not_found-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -995,10 +987,10 @@
</p>
</div>
</div>
-<a name="N10321"></a><a name="part_output"></a>
+<a name="N10316"></a><a name="part_output"></a>
<h4>3. Problems with FOP output</h4>
<div style="margin-left: 0 ; border: 2px">
-<a name="N10325"></a><a name="blank_page_between_page_sequences"></a>
+<a name="N1031A"></a><a name="blank_page_between_page_sequences"></a>
<h5>3.1. Why does FOP insert a blank page between my page sequences?<span
style="float: right"><a
href="#blank_page_between_page_sequences-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -1022,7 +1014,7 @@
<span class="codefrag">force-page-count="no-force"</span>.
</p>
</div>
-<a name="N1033D"></a><a name="png_fails"></a>
+<a name="N10332"></a><a name="png_fails"></a>
<h5>3.2. My PNG images don't work.<span style="float: right"><a
href="#png_fails-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -1040,7 +1032,7 @@
not available for all platforms.
</p>
</div>
-<a name="N1034F"></a><a name="keep-with"></a>
+<a name="N10344"></a><a name="keep-with"></a>
<h5>3.3. Keep-with-next, keep-with-previous, keep-together
don't work.<span style="float: right"><a
href="#keep-with-menu">^</a></span>
</h5>
@@ -1075,7 +1067,7 @@
</fo:table-body>
</fo:table></pre>
</div>
-<a name="N10361"></a><a name="table_missing"></a>
+<a name="N10356"></a><a name="table_missing"></a>
<h5>3.4. My tables are missing, or missing their content.<span style="float:
right"><a href="#table_missing-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -1091,7 +1083,7 @@
fo:table-with-caption elements, so watch out.
</p>
</div>
-<a name="N1036C"></a><a name="cells_overflow"></a>
+<a name="N10361"></a><a name="cells_overflow"></a>
<h5>3.5. Text overflowing table cells and the like is not clipped. Long
text flows into adjacent cells/block, obscuring stuff there.<span
style="float: right"><a href="#cells_overflow-menu">^</a></span>
</h5>
@@ -1125,7 +1117,7 @@
archive</a> for how to perform these tasks.
</p>
</div>
-<a name="N1038E"></a><a name="page_number_align"></a>
+<a name="N10383"></a><a name="page_number_align"></a>
<h5>3.6. Page numbers are not properly right aligned.<span style="float:
right"><a href="#page_number_align-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -1142,7 +1134,7 @@
problem completely.
</p>
</div>
-<a name="N10399"></a><a name="graphic_not_displayed"></a>
+<a name="N1038E"></a><a name="graphic_not_displayed"></a>
<h5>3.7. A graphic is not displayed.<span style="float: right"><a
href="#graphic_not_displayed-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -1179,7 +1171,7 @@
</ul>
</div>
-<a name="N103B3"></a><a name="hypenation_fails"></a>
+<a name="N103A8"></a><a name="hypenation_fails"></a>
<h5>3.8. Hyphenation does not work.<span style="float: right"><a
href="#hypenation_fails-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -1190,10 +1182,10 @@
</p>
</div>
</div>
-<a name="N103BB"></a><a name="part_embedding"></a>
+<a name="N103B0"></a><a name="part_embedding"></a>
<h4>4. Embedding FOP. Using FOP in a servlet.</h4>
<div style="margin-left: 0 ; border: 2px">
-<a name="N103BF"></a><a name="servlet"></a>
+<a name="N103B4"></a><a name="servlet"></a>
<h5>4.1. How do I use FOP in a servlet?<span style="float: right"><a
href="#servlet-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -1216,7 +1208,7 @@
for all kinds of details.
</p>
</div>
-<a name="N103D8"></a><a name="servlet_with_xslt"></a>
+<a name="N103CD"></a><a name="servlet_with_xslt"></a>
<h5>4.2. How do I use FOP in a servlet with an XSLT
transformation?<span style="float: right"><a
href="#servlet_with_xslt-menu">^</a></span>
</h5>
@@ -1272,7 +1264,7 @@
parameters for the transformation run too.
</p>
</div>
-<a name="N10403"></a><a name="servlet_xslt_params"></a>
+<a name="N103F8"></a><a name="servlet_xslt_params"></a>
<h5>4.3. How do I pass parameters to the XSLT transformation?<span
style="float: right"><a href="#servlet_xslt_params-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -1280,7 +1272,7 @@
See the end of the answer for the question above.
</p>
</div>
-<a name="N1040B"></a><a name="servlet_nonstd_fonts"></a>
+<a name="N10400"></a><a name="servlet_nonstd_fonts"></a>
<h5>4.4. How do I use my own fonts when running FOP from a
servlet?<span style="float: right"><a
href="#servlet_nonstd_fonts-menu">^</a></span>
</h5>
@@ -1291,7 +1283,7 @@
file</a> for further steps.
</p>
</div>
-<a name="N1041A"></a><a name="servlet_baseDir"></a>
+<a name="N1040F"></a><a name="servlet_baseDir"></a>
<h5>4.5. How do I set the baseDir property in a servlet environment?<span
style="float: right"><a href="#servlet_baseDir-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -1308,7 +1300,7 @@
for caveats.
</p>
</div>
-<a name="N10434"></a><a name="usercfg"></a>
+<a name="N10429"></a><a name="usercfg"></a>
<h5>4.6. How do I use a user configuration file from a servlet?<span
style="float: right"><a href="#usercfg-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -1327,7 +1319,7 @@
environments.
</p>
</div>
-<a name="N10449"></a><a name="servlet_NoClassDefFound"></a>
+<a name="N1043E"></a><a name="servlet_NoClassDefFound"></a>
<h5>4.7. I keep getting NoClassDefFound and other exceptions. How do I
get FOP working for various servlet engines?<span style="float:
right"><a href="#servlet_NoClassDefFound-menu">^</a></span>
</h5>
@@ -1347,7 +1339,7 @@
Websphere 3.5: See next question.
</p>
</div>
-<a name="N10457"></a><a name="websphere_3_5"></a>
+<a name="N1044C"></a><a name="websphere_3_5"></a>
<h5>4.8. FOP in IBM Websphere 3.5<span style="float: right"><a
href="#websphere_3_5-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -1365,7 +1357,7 @@
restart the application server.
</p>
</div>
-<a name="N1045F"></a><a name="multithreaded"></a>
+<a name="N10454"></a><a name="multithreaded"></a>
<h5>4.9. Can FOP be used in multithreaded environments?<span style="float:
right"><a href="#multithreaded-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -1388,10 +1380,10 @@
</p>
</div>
</div>
-<a name="N1046A"></a><a name="part_svg"></a>
+<a name="N1045F"></a><a name="part_svg"></a>
<h4>5. Batik/SVG specific questions</h4>
<div style="margin-left: 0 ; border: 2px">
-<a name="N1046E"></a><a name="svg_text"></a>
+<a name="N10463"></a><a name="svg_text"></a>
<h5>5.1. SVG text rendered in bad quality. How do I put SVG text as text
into PDF?<span style="float: right"><a
href="#svg_text-menu">^</a></span>
</h5>
@@ -1423,7 +1415,7 @@
This does not work for other renderers.
</p>
</div>
-<a name="N1048E"></a><a name="svg_headless"></a>
+<a name="N10483"></a><a name="svg_headless"></a>
<h5>5.2. How do I use FOP with SVG on headless servers?<span style="float:
right"><a href="#svg_headless-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -1456,7 +1448,7 @@
</ul>
</div>
-<a name="N104A9"></a><a name="svghangs"></a>
+<a name="N1049E"></a><a name="svghangs"></a>
<h5>5.3. FOP does not exit if a SVG is included.<span style="float:
right"><a href="#svghangs-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -1466,7 +1458,7 @@
System.exit(0) somewhere.
</p>
</div>
-<a name="N104B1"></a><a name="svg_url"></a>
+<a name="N104A6"></a><a name="svg_url"></a>
<h5>5.4. I have problems with SVG referring to gradients etc. using
"uri(#stuff)". I get a MalformedURLException.<span style="float:
right"><a href="#svg_url-menu">^</a></span>
</h5>
@@ -1520,10 +1512,10 @@
</p>
</div>
</div>
-<a name="N104DD"></a><a name="part_pdf"></a>
+<a name="N104D2"></a><a name="part_pdf"></a>
<h4>6. PDF specific (includes Acrobat peculiarities)</h4>
<div style="margin-left: 0 ; border: 2px">
-<a name="N104E1"></a><a name="pdf_embed_font"></a>
+<a name="N104D6"></a><a name="pdf_embed_font"></a>
<h5>6.1. How do I embed fonts in PDF?<span style="float: right"><a
href="#pdf_embed_font-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -1532,7 +1524,7 @@
about embedding fonts.
</p>
</div>
-<a name="N104ED"></a><a name="pdf_characters"></a>
+<a name="N104E2"></a><a name="pdf_characters"></a>
<h5>6.2. Some characters are not displayed, or displayed incorrectly, or
displayed as “#”.<span style="float: right"><a
href="#pdf_characters-menu">^</a></span>
</h5>
@@ -1557,7 +1549,7 @@
</p>
<pre class="code"><fo:inline
font-family="Helvetica">&#x2205;</fo:inline></pre>
</div>
-<a name="N1050B"></a><a name="PDF-postprocess"></a>
+<a name="N10500"></a><a name="PDF-postprocess"></a>
<h5>6.3. What tools are available for post-processing my PDF document?<span
style="float: right"><a href="#PDF-postprocess-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -1567,10 +1559,10 @@
The most popular one that we are aware of is <a
href="http://www.lowagie.com/iText">iText</a>, which has tools
for adding security features, document properties, watermarks,
and
many other features to PDF files. FOP and iText can be integrated
- into one Java application, see sample code for <a
href="pdf-security.html">encryption</a>.
+ into one Java application, see sample code for <a
href="#pdf-security">encryption</a>.
The bad news is that iText swallows PDF bookmarks.
</li>
-
+
<li>
You can use Adobe Acrobat (the full version, not the Reader) to
@@ -1579,7 +1571,7 @@
</ul>
</div>
-<a name="N10521"></a><a name="pdf-security"></a>
+<a name="N10516"></a><a name="pdf-security"></a>
<h5>6.4. How do I add security features (encryption, disable printing)
to my PDF document?<span style="float: right"><a
href="#pdf-security-menu">^</a></span>
</h5>
@@ -1608,7 +1600,7 @@
int n = reader.getNumberOfPages();
Document document = new Document(reader.getPageSizeWithRotation(1));
PdfWriter writer = PdfWriter.getInstance(document, outfile);
- writer.setEncryption(PdfWriter.STRENGTH40BITS, "pdf", null,
+ writer.setEncryption(PdfWriter.STRENGTH40BITS, "pdf", null,
PdfWriter.AllowCopy);
document.open();
PdfContentByte cb = writer.getDirectContent();
@@ -1640,7 +1632,7 @@
password, encryption strength and other parameters.
</p>
</div>
-<a name="N10537"></a><a name="pdf_doc_properties"></a>
+<a name="N1052C"></a><a name="pdf_doc_properties"></a>
<h5>6.5. How do I add document properties (title, author, etc.) to my
PDF document?<span style="float: right"><a
href="#pdf_doc_properties-menu">^</a></span>
</h5>
@@ -1649,7 +1641,7 @@
include those mentioned in the <a href="#PDF-postprocess">PDF
Post-Processing FAQ</a>.</p>
</div>
-<a name="N10543"></a><a name="pdf_watermark"></a>
+<a name="N10538"></a><a name="pdf_watermark"></a>
<h5>6.6. How do I add watermarks to my PDF document?<span style="float:
right"><a href="#pdf_watermark-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -1678,7 +1670,7 @@
</ul>
</div>
-<a name="N1055B"></a><a name="pdf_print_contortion"></a>
+<a name="N10550"></a><a name="pdf_print_contortion"></a>
<h5>6.7. The PDF is printed contorted!<span style="float: right"><a
href="#pdf_print_contortion-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -1690,7 +1682,7 @@
settings too.
</p>
</div>
-<a name="N10563"></a><a name="pdf_bookmark_display"></a>
+<a name="N10558"></a><a name="pdf_bookmark_display"></a>
<h5>6.8. How do I control the Acrobat bookmark display?<span style="float:
right"><a href="#pdf_bookmark_display-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -1701,10 +1693,10 @@
</p>
</div>
</div>
-<a name="N1056F"></a><a name="part_iex"></a>
+<a name="N10564"></a><a name="part_iex"></a>
<h4>7. IEx specific stuff</h4>
<div style="margin-left: 0 ; border: 2px">
-<a name="N10573"></a><a name="iex_servlet_multiple"></a>
+<a name="N10568"></a><a name="iex_servlet_multiple"></a>
<h5>7.1. The FOP servlet is called multiple times!<span style="float:
right"><a href="#iex_servlet_multiple-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -1740,7 +1732,7 @@
</ul>
</div>
-<a name="N10593"></a><a name="iex_pdf_print_from_browser"></a>
+<a name="N10588"></a><a name="iex_pdf_print_from_browser"></a>
<h5>7.2. How do I print PDF directly from the browser?<span style="float:
right"><a href="#iex_pdf_print_from_browser-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -1764,10 +1756,10 @@
</p>
</div>
</div>
-<a name="N105A4"></a><a name="part_input"></a>
+<a name="N10599"></a><a name="part_input"></a>
<h4>8. More general questions regarding XSLT and XSLFO and basic XML</h4>
<div style="margin-left: 0 ; border: 2px">
-<a name="N105A8"></a><a name="fo_center"></a>
+<a name="N1059D"></a><a name="fo_center"></a>
<h5>8.1. (FO) How do I vertically center an image or a table (or
whatever)?<span style="float: right"><a
href="#fo_center-menu">^</a></span>
</h5>
@@ -1803,7 +1795,7 @@
</fo:page-sequence>
</fo:root></pre>
</div>
-<a name="N105B4"></a><a name="fo_center_table_horizon"></a>
+<a name="N105A9"></a><a name="fo_center_table_horizon"></a>
<h5>8.2. (FO) How do I center a table horizontally?<span style="float:
right"><a href="#fo_center_table_horizon-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -1841,7 +1833,7 @@
If your table is more complicated, or if defining borders on
individual cells becomes too much work, use the code above and nest your table
within the moddle cell.
</p>
</div>
-<a name="N105C3"></a><a name="fo_page_outer"></a>
+<a name="N105B8"></a><a name="fo_page_outer"></a>
<h5>8.3. (FO) How to get page numbers printed on the "outer side" of the
page (for books, for example)?<span style="float: right"><a
href="#fo_page_outer-menu">^</a></span>
</h5>
@@ -1851,7 +1843,7 @@
pages</a>.
</p>
</div>
-<a name="N105CF"></a><a name="oddeven"></a>
+<a name="N105C4"></a><a name="oddeven"></a>
<h5>8.4. (FO) How do I use different static content for odd and even
pages?<span style="float: right"><a href="#oddeven-menu">^</a></span>
</h5>
@@ -1907,7 +1899,7 @@
</fo:page-sequence>
</fo:root></pre>
</div>
-<a name="N105E2"></a><a name="fo_first_page_header"></a>
+<a name="N105D7"></a><a name="fo_first_page_header"></a>
<h5>8.5. (FO) How do I get a special header on the first page?<span
style="float: right"><a href="#fo_first_page_header-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -1958,7 +1950,7 @@
</fo:page-sequence>
</fo:root></pre>
</div>
-<a name="N105EE"></a><a name="fo_omit_headers"></a>
+<a name="N105E3"></a><a name="fo_omit_headers"></a>
<h5>8.6. (FO) How do I omit my headers on a blank page? How do I write
"This page is left blank" on an intentionally blank page?<span
style="float: right"><a href="#fo_omit_headers-menu">^</a></span>
</h5>
@@ -2017,7 +2009,7 @@
</fo:page-sequence>
</fo:root></pre>
</div>
-<a name="N10600"></a><a name="fo_special_symbols"></a>
+<a name="N105F5"></a><a name="fo_special_symbols"></a>
<h5>8.7. (FO) How do I print an Euro sign, a checkbox or other some other
special symbols?<span style="float: right"><a
href="#fo_special_symbols-menu">^</a></span>
</h5>
@@ -2050,7 +2042,7 @@
Alternative: Use an embedded graphic: GIF, PNG, SVG, whatever.
</p>
</div>
-<a name="N10627"></a><a name="fo_preformat"></a>
+<a name="N1061C"></a><a name="fo_preformat"></a>
<h5>8.8. (FO) How do I keep linebreaks and hard spaces? How do I get
preformatted text displayed as expected?<span style="float:
right"><a href="#fo_preformat-menu">^</a></span>
</h5>
@@ -2063,7 +2055,7 @@
actually a bug, expect this to be changed).
</p>
</div>
-<a name="N10637"></a><a name="fo_total_pages"></a>
+<a name="N1062C"></a><a name="fo_total_pages"></a>
<h5>8.9. (FO) How do I print the total number of pages, like in "page 1
of 12"<span style="float: right"><a
href="#fo_total_pages-menu">^</a></span>
</h5>
@@ -2139,7 +2131,7 @@
the first run by the actual page count may change it.
</p>
</div>
-<a name="N10663"></a><a name="fo_region_overlap"></a>
+<a name="N10658"></a><a name="fo_region_overlap"></a>
<h5>8.10. (FO) The header overlaps body content. The body extends into
the footer.<span style="float: right"><a
href="#fo_region_overlap-menu">^</a></span>
</h5>
@@ -2160,7 +2152,7 @@
The overlap effect can be used creatively for some purposes.
</p>
</div>
-<a name="N10671"></a><a name="fo_lines"></a>
+<a name="N10666"></a><a name="fo_lines"></a>
<h5>8.11. (FO) How do I get lines in the document, as separators, side
bars or folding marks?<span style="float: right"><a
href="#fo_lines-menu">^</a></span>
</h5>
@@ -2186,7 +2178,7 @@
</ul>
</div>
-<a name="N10689"></a><a name="FO-validate"></a>
+<a name="N1067E"></a><a name="FO-validate"></a>
<h5>8.12. (FO) How do I validate my FO document?<span style="float:
right"><a href="#FO-validate-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
@@ -2205,7 +2197,7 @@
document for instructions on how to use it.
</p>
</div>
-<a name="N106A0"></a><a name="xml_non-breaking_space"></a>
+<a name="N10695"></a><a name="xml_non-breaking_space"></a>
<h5>8.13. (XML) There are complaints about &nbsp;. How
do I get a non-breaking space in FO?<span style="float: right"><a
href="#xml_non-breaking_space-menu">^</a></span>
</h5>
@@ -2215,7 +2207,7 @@
which declares the entity.
</p>
</div>
-<a name="N106AB"></a><a name="xml_undefined_entities"></a>
+<a name="N106A0"></a><a name="xml_undefined_entities"></a>
<h5>8.14. (XML) There are complaints about undefined entities, for example
about &uuml; which used to work in HTML. How do I enter
special characters like in HTML?<span style="float: right"><a
href="#xml_undefined_entities-menu">^</a></span>
@@ -2229,7 +2221,7 @@
</p>
</div>
-<a name="N106BA"></a><a name="xml_illegal_entities"></a>
+<a name="N106AF"></a><a name="xml_illegal_entities"></a>
<h5>8.15. (XML) There are complaints about illegal characters and entities
in the input.<span style="float: right"><a
href="#xml_illegal_entities-menu">^</a></span>
</h5>
@@ -2249,7 +2241,7 @@
file format.
</p>
</div>
-<a name="N106CC"></a><a name="xml_illegal_chars"></a>
+<a name="N106C1"></a><a name="xml_illegal_chars"></a>
<h5>8.16. (XML) There are complaints about illegal bytes or characters in
the input. There are odd characters in the result.<span style="float:
right"><a href="#xml_illegal_chars-menu">^</a></span>
</h5>
@@ -2263,23 +2255,11 @@
</p>
</div>
</div>
-<a name="N106D8"></a><a name="part_developer"></a>
-<h4>9. General Developer Questions</h4>
+<a name="N106CD"></a><a name="part_help"></a>
+<h4>9. General suggestions. How to solve problems.</h4>
<div style="margin-left: 0 ; border: 2px">
-<a name="N106DC"></a><a name="javadoc_location"></a>
-<h5>9.1. How do I get the javadocs for FOP?<span style="float: right"><a
href="#javadoc_location-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>Currently, the only way to get FOP javadocs is to <a href="download.html">
- Download the source code</a> and then <a href="compiling.html">Build
- FOP</a> using the ant build task "javadocs".</p>
-</div>
-</div>
-<a name="N106EC"></a><a name="part_help"></a>
-<h4>10. General suggestions. How to solve problems.</h4>
-<div style="margin-left: 0 ; border: 2px">
-<a name="N106F0"></a><a name="bugs"></a>
-<h5>10.1. I think I have found a bug in FOP. What should I do?<span
style="float: right"><a href="#bugs-menu">^</a></span>
+<a name="N106D1"></a><a name="bugs"></a>
+<h5>9.1. I think I have found a bug in FOP. What should I do?<span
style="float: right"><a href="#bugs-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
<p>
@@ -2287,12 +2267,14 @@
bugs already reported and how to report new ones.
</p>
</div>
-<a name="N106FC"></a><a name="postquestions"></a>
-<h5>10.2. I have questions that are not addressed in this FAQ. Where
+<a name="N106DD"></a><a name="postquestions"></a>
+<h5>9.2. I have questions that are not addressed in this FAQ. Where
should I post them?<span style="float: right"><a
href="#postquestions-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
<ul>
+
+<li>If your question is a development-related question, please see the <a
href="dev/faq.html">Developer FAQs</a>.</li>
<li>
If you have a runtime exception or other runtime problem:
1.9 +2364 -2602xml-site/targets/fop/faq.pdf
<<Binary file>>
1.31 +21 -20 xml-site/targets/fop/implemented.html
Index: implemented.html
===================================================================
RCS file: /home/cvs/xml-site/targets/fop/implemented.html,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- implemented.html 11 Mar 2003 15:34:37 -0000 1.30
+++ implemented.html 25 Mar 2003 02:34:09 -0000 1.31
@@ -326,7 +326,7 @@
<a href="#2%29+Properties">2) Properties</a>
</li>
<li>
-<a href="#3%29SVG+Support">3)SVG Support</a>
+<a href="#3%29+SVG+Support">3) SVG Support</a>
</li>
</ul>
</li>
@@ -339,16 +339,17 @@
<h4>What's Implemented?</h4>
<div style="margin-left: 0 ; border: 2px">
<p>The following formatting objects and properties of the XSL-FO 1.0
- W3C Recommandation are implemented. Please have also a look at the
+ W3C Recommendation are implemented. Please also have a look at the
section on <a target="_top" href="limitations.html">limitations</a>.
</p>
</div>
<a name="N101D2"></a><a name="1%29+Formatting+Objects"></a>
<h4>1) Formatting Objects</h4>
<div style="margin-left: 0 ; border: 2px">
-<p>This section follows the table "B Formatting Object Summary" in the
xsl:fo specification. At the
- end of each sub-section you find listed what is not implemented.</p>
-<a name="N101DB"></a><a
name="B.1+Declaration+and+Pagination+and+Layout+Formatting+Objects"></a>
+<p>This section follows the tables in
+ <a target="_top"
href="http://www.w3.org/TR/2001/REC-xsl-20011015/sliceB.html#FO-summary">Appendix
B, "Formatting Object Summary"</a> of the XSL-FO specification.
+ Items that are not currently implemented are listed at the end of each
sub-section.</p>
+<a name="N101DF"></a><a
name="B.1+Declaration+and+Pagination+and+Layout+Formatting+Objects"></a>
<h5>B.1 Declaration and Pagination and Layout Formatting Objects</h5>
<div style="margin-left: 0 ; border: 2px">
<ul>
@@ -388,7 +389,7 @@
</ul>
<p>Not implemented: declarations, color-profile, title</p>
</div>
-<a name="N10218"></a><a name="B.2+Block+Formatting+Objects"></a>
+<a name="N1021C"></a><a name="B.2+Block+Formatting+Objects"></a>
<h5>B.2 Block Formatting Objects</h5>
<div style="margin-left: 0 ; border: 2px">
<ul>
@@ -399,7 +400,7 @@
</ul>
</div>
-<a name="N10228"></a><a name="B.3+Inline+Formatting+Objects"></a>
+<a name="N1022C"></a><a name="B.3+Inline+Formatting+Objects"></a>
<h5>B.3 Inline Formatting Objects</h5>
<div style="margin-left: 0 ; border: 2px">
<ul>
@@ -422,7 +423,7 @@
</ul>
<p>Not implemented: bidi-override, initial-property-set, inline-container</p>
</div>
-<a name="N1024D"></a><a name="B.4+Table+Formatting+Objects"></a>
+<a name="N10251"></a><a name="B.4+Table+Formatting+Objects"></a>
<h5>B.4 Table Formatting Objects</h5>
<div style="margin-left: 0 ; border: 2px">
<ul>
@@ -444,7 +445,7 @@
</ul>
<p>Not implemented: table-and-caption, table-caption </p>
</div>
-<a name="N1026F"></a><a name="B.5+List+Formatting+Objects"></a>
+<a name="N10273"></a><a name="B.5+List+Formatting+Objects"></a>
<h5>B.5 List Formatting Objects</h5>
<div style="margin-left: 0 ; border: 2px">
<ul>
@@ -459,7 +460,7 @@
</ul>
</div>
-<a name="N10285"></a><a name="B.6+Link+and+Multi+Formatting+Objects"></a>
+<a name="N10289"></a><a name="B.6+Link+and+Multi+Formatting+Objects"></a>
<h5>B.6 Link and Multi Formatting Objects</h5>
<div style="margin-left: 0 ; border: 2px">
<ul>
@@ -470,7 +471,7 @@
<p>Not implemented: multi-switch, multi-case, multi-toggle,
multi-properties, multi-property-set</p>
</div>
-<a name="N10295"></a><a name="B.7+Out-of-line+Formatting+Objects"></a>
+<a name="N10299"></a><a name="B.7+Out-of-line+Formatting+Objects"></a>
<h5>B.7 Out-of-line Formatting Objects</h5>
<div style="margin-left: 0 ; border: 2px">
<ul>
@@ -482,7 +483,7 @@
</ul>
<p>Not implemented: float</p>
</div>
-<a name="N102A8"></a><a name="B.8+Other+Formatting+Objects"></a>
+<a name="N102AC"></a><a name="B.8+Other+Formatting+Objects"></a>
<h5>B.8 Other Formatting Objects</h5>
<div style="margin-left: 0 ; border: 2px">
<ul>
@@ -494,10 +495,10 @@
</ul>
</div>
</div>
-<a name="N102B9"></a><a name="2%29+Properties"></a>
+<a name="N102BD"></a><a name="2%29+Properties"></a>
<h4>2) Properties</h4>
<div style="margin-left: 0 ; border: 2px">
-<p>Property values can be computed. Compound properties are also understood
by Fop.</p>
+<p>Property values can be computed. Compound properties are also understood
by FOP.</p>
<ul>
<li>background-color </li>
@@ -729,17 +730,17 @@
</ul>
<p>All other properties are not implemented.</p>
</div>
-<a name="N1041C"></a><a name="3%29SVG+Support"></a>
-<h4>3)SVG Support</h4>
+<a name="N10420"></a><a name="3%29+SVG+Support"></a>
+<h4>3) SVG Support</h4>
<div style="margin-left: 0 ; border: 2px">
<p>
FOP uses <a target="_top" href="http://xml.apache.org/batik/">Batik</a>
directly for its SVG support. Therefore FOP supports the same
-elements and properties as are supported by Batik. As FOP is designed for
-rendering to a static medium then only static SVG is rendered.
+elements and properties as are supported by Batik. Because FOP is designed
for
+rendering to a static medium, only static SVG is supported.
</p>
<p>
-Due to some limitations in PDF some SVG images, particularly ones with
effects
-or transparency, may not come out correctly. The images should still be
renderedcorrectly for the AWT and Print renderers.
+Due to certain PDF limitations, some SVG images, particularly those with
filter effects
+or transparency, may not come out correctly. However, these images should
still be rendered correctly by the AWT and Print renderers.
</p>
</div>
</div>
1.6 +113 -113 xml-site/targets/fop/implemented.pdf
<<Binary file>>
1.13 +11 -9 xml-site/targets/fop/relnotes.html
Index: relnotes.html
===================================================================
RCS file: /home/cvs/xml-site/targets/fop/relnotes.html,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- relnotes.html 11 Mar 2003 15:34:38 -0000 1.12
+++ relnotes.html 25 Mar 2003 02:34:09 -0000 1.13
@@ -327,17 +327,17 @@
<a name="N101BE"></a><a name="FOP+0.20.5"></a>
<h3>FOP 0.20.5</h3>
<div style="margin-left: 0 ; border: 2px">
-<p>This is the last planed release in the 0.20.x series (aka maintenance
branch).</p>
+<p>This is the last planned release in the 0.20.x series (aka maintenance
branch).</p>
<p>Important changes since the last release (0.20.4):</p>
<ul>
<li>Some hyphenation patterns (cs, da, de, de_DR, el, en, en_US, fr, nl,
- no, pt, ru, sk, tr) have been removed due to licensing reasons.
- We hope to resolve this issue until the final release.
+ no, pt, ru, sk, tr) have been removed due to licensing reasons.
+ We hope to resolve this issue before the final release.
(English hyphenation is still available as en_GB)
</li>
-<li>Documentation is done with <a href="http://xml.apache.org/forrest/">
+<li>Documentation is now built with <a href="http://xml.apache.org/forrest/">
Forrest</a> (version 0.3). You need to install Forrest if you want
build the docs
yourself. (See
<a href="http://xml.apache.org/forrest/your-project.html">Using
Forrest</a>)
@@ -347,14 +347,16 @@
Xerces to version 2.2.1, Xalan to version 2.4.1 and Batik to version
1.5beta4.
</li>
-<li>Fop has been compiled with Jimi support this time but you still have to
download
- <a href="http://java.sun.com/products/jimi/">Jimi</a>, extract the
archive,
+<li>FOP has been compiled with Jimi support, but Jimi is not included in the
+ FOP distribution. To use it, first download
+ <a href="http://java.sun.com/products/jimi/">Jimi</a>, then extract
+ the archive, then
copy JimiProClasses.zip to FOP's lib dir and rename it to
jimi-1.0.jar.
</li>
-<li>Fop has been compiled with
- <a href="http://java.sun.com/products/java-media/jai/JAI">JAI</a>
- support. For using JAI you just need to install it.
+<li>FOP has been compiled with JAI support, but JAI is not included in the
+ FOP distribution. To use it, simply install
+ <a href="http://java.sun.com/products/java-media/jai">JAI</a>.
</li>
<li>Links in PDF won't generate multiple link rectangles anymore. If this
causes
1.6 +136 -162 xml-site/targets/fop/relnotes.pdf
<<Binary file>>
1.10 +59 -59 xml-site/targets/fop/design/architecture.html
Index: architecture.html
===================================================================
RCS file: /home/cvs/xml-site/targets/fop/design/architecture.html,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- architecture.html 11 Mar 2003 15:34:40 -0000 1.9
+++ architecture.html 25 Mar 2003 02:34:10 -0000 1.10
@@ -2,7 +2,7 @@
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Architecture</title>
+<title>Implementation Overview</title>
<link type="text/css" href="../skin/page.css" rel="stylesheet">
</head>
<body text="#000000" bgcolor="#FFFFFF">
@@ -142,7 +142,7 @@
<ul>
<li>
-<span class="sel"><font color="#ffcc00">Architecture</font></span>
+<span class="sel"><font color="#ffcc00">Architecture
Implementation</font></span>
</li>
</ul>
@@ -247,21 +247,21 @@
<table class="title" summary="">
<tr>
<td valign="middle">
-<h1>Architecture</h1>
+<h1>Implementation Overview</h1>
</td><td nowrap="nowrap" width="40" align="center"><a class="dida"
href="architecture.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif"
border="0"><br>
PDF</a></td>
</tr>
</table>
-<h3>Architecture information for FOP</h3>
+<h3>Following a Document Through FOP</h3>
<p>
<font size="-2">by Arved Sandstrom</font>
</p>
<ul class="minitoc">
<li>
-<a href="#FOP+Mechanics">FOP Mechanics</a>
-<ul class="minitoc">
+<a href="#Overview">Overview</a>
+</li>
<li>
-<a href="#Introduction">Introduction</a>
+<a href="#Startup">Startup</a>
</li>
<li>
<a href="#Formatting+Object+Tree">Formatting Object Tree</a>
@@ -276,71 +276,72 @@
<a href="#Rendering">Rendering</a>
</li>
</ul>
-</li>
-</ul>
-
-
-<a name="N101C8"></a><a name="FOP+Mechanics"></a>
-<h3>FOP Mechanics</h3>
+
+<p>The purpose of this document is to tie together the FOP design
(interface) with some of the key points where control is passed within FOP
(implementation), so that developers can quickly find the section of code that
is relevant to their needs. The process described is for a "typical"
command-line document. All class names are in org.apache.fop unless otherwise
designated.</p>
+
+<a name="N101CB"></a><a name="Overview"></a>
+<h3>Overview</h3>
<div style="margin-left: 0 ; border: 2px">
-<a name="N101CE"></a><a name="Introduction"></a>
-<h4>Introduction</h4>
+<p>The input FO document is sent to the FO tree builder via SAX events.
Fragments of an FO Tree are built from this process. As each page-sequence
element is completed, it is passed to a layout processor, which in turn
converts it into an Area Tree. The Area Tree is then given to the Renderer,
which converts it into a stream of data containing the output document. The
sections below will provide additional details.</p>
+</div>
+
+<a name="N101D5"></a><a name="Startup"></a>
+<h3>Startup</h3>
<div style="margin-left: 0 ; border: 2px">
-<p>
-The overall process is controlled by <em>org.apache.fop.apps.Driver</em>.
-This class handles the FO Tree building, structure handler, renderers,
output and logging.
-</p>
-<p>
-The process in general is that the FO document is sent to the tree
-builder via SAX events. This creates an FO Tree. The FO Tree is then
-handled by the layout processor which converts the FO Tree into an area
-tree. This area tree is then given to the renderer and the renderer converts
-the area tree into a stream of data containing the output document.
-</p>
+<ul>
+
+<li>The job starts in <em>apps.Fop.main()</em>.</li>
+
+<li>Control is passed to <em>apps.CommandLineStarter.run()</em>.</li>
+
+<li>Control is passed to <em>apps.Driver.render()</em>. This class fires up
a SAX parser, the events from which indirectly control the remaining
processing, including building the FO Tree, building the Area Tree, rendering,
output and logging.</li>
+
+</ul>
</div>
-<a name="N101DE"></a><a name="Formatting+Object+Tree"></a>
-<h4>Formatting Object Tree</h4>
+
+<a name="N101F1"></a><a name="Formatting+Object+Tree"></a>
+<h3>Formatting Object Tree</h3>
<div style="margin-left: 0 ; border: 2px">
-<p>
-The class <em>org.apache.fop.fo.FOTreeBuilder</em> is responsible for
-actually constructing the FO tree. The key SAX events used are </p>
-<p>
-<span class="codefrag">startElement()</span>,</p>
-<p>
-<span class="codefrag">endElement()</span> and <span
class="codefrag">characters()</span>.</p>
+<ul>
+
+<li>The SAX events that the parser creates are handled by
<em>fo.FOTreeBuilder</em>, which uses <span
class="codefrag">startElement()</span>, <span
class="codefrag">endElement()</span>, and <span
class="codefrag">characters()</span> methods to build the FO Tree.</li>
+
+<li>
+<em>fo.FOTreeBuilder.endElement()</em> runs the end() method for each node
as it is created. The <em>fo.pagination.PageSequence</em> class overrides this
end() method to run <em>apps.LayoutHandler.endPageSequence()</em>.</li>
+
+<li>
+<em>apps.LayoutHandler.endPageSequence()</em> in turn runs
<em>fo.pagination.PageSequence.format()</em>, which drives the layout
process.</li>
+
+</ul>
</div>
-<a name="N101F8"></a><a name="Layout"></a>
-<h4>Layout</h4>
+
+<a name="N1021D"></a><a name="Layout"></a>
+<h3>Layout</h3>
<div style="margin-left: 0 ; border: 2px">
-<p>
-The layout managers handle the layout. They take an FO tree and construct
-the area tree.
-The layout process involves finding out where line breaks and page
-breaks should be made. The areas are then added to the page. The
-static areas can the be done for all the static regions.
-Completed pages are then added to the area tree, the area tree can
-then deal with the page.
-</p>
+<p>There are layout managers for each type of layout decision.
+They take an FO Tree as input and build a laid-out Area Tree from it.
+The layout process involves finding out where line breaks and page breaks
should be made, then creating the areas on the page.
+Static areas can then be added for any static regions.
+As pages are completed, they are added to the Area Tree.</p>
</div>
-<a name="N10202"></a><a name="Area+Tree"></a>
-<h4>Area Tree</h4>
+
+<a name="N10227"></a><a name="Area+Tree"></a>
+<h3>Area Tree</h3>
<div style="margin-left: 0 ; border: 2px">
-<p>
-The area tree is a data structure designed to hold the page areas.
+<p>The area tree is a data structure designed to hold the page areas.
These pages are then filled with the page regions and various areas.
The area tree is used primarily as a minimal structure that can be rendered
-by the renderers.
-</p>
-<p>
-The area tree is supported by an area tree model. This model
+by the renderers.</p>
+<p>The area tree is supported by an area tree model. This model
handles the adding of pages to the area tree. It also handles
page sequence starts, document level extensions, id references
and unresolved id areas. This model allows the pages to be handled
directly by a renderer or to store the pages for later use.
</p>
</div>
-<a name="N1020F"></a><a name="Rendering"></a>
-<h4>Rendering</h4>
+
+<a name="N10234"></a><a name="Rendering"></a>
+<h3>Rendering</h3>
<div style="margin-left: 0 ; border: 2px">
<p>
The renderer receives pages from the area tree and renders those pages.
@@ -354,12 +355,11 @@
<p>
When rendering a page it takes the page and renders each page region.
The main work for a renderer implementation is to handle the viewports
-and inline areas. The inline areas need to be dran on the page in the
+and inline areas. The inline areas need to be drawn on the page in the
correct place.
</p>
</div>
-</div>
-
+
</div>
</td><td width="10"><img width="10" height="1" alt=""
src="../skin/images/spacer.gif"></td>
</tr>
1.5 +68 -69 xml-site/targets/fop/design/architecture.pdf
<<Binary file>>
1.7 +1 -1 xml-site/targets/fop/design/areas.html
Index: areas.html
===================================================================
RCS file: /home/cvs/xml-site/targets/fop/design/areas.html,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- areas.html 11 Mar 2003 15:34:40 -0000 1.6
+++ areas.html 25 Mar 2003 02:34:10 -0000 1.7
@@ -142,7 +142,7 @@
<ul>
<li>
-<a href="architecture.html">Architecture</a>
+<a href="architecture.html">Architecture Implementation</a>
</li>
</ul>
1.8 +1 -1 xml-site/targets/fop/design/breakpos.html
Index: breakpos.html
===================================================================
RCS file: /home/cvs/xml-site/targets/fop/design/breakpos.html,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- breakpos.html 11 Mar 2003 15:34:40 -0000 1.7
+++ breakpos.html 25 Mar 2003 02:34:10 -0000 1.8
@@ -142,7 +142,7 @@
<ul>
<li>
-<a href="architecture.html">Architecture</a>
+<a href="architecture.html">Architecture Implementation</a>
</li>
</ul>
1.11 +1 -1 xml-site/targets/fop/design/embedding.html
Index: embedding.html
===================================================================
RCS file: /home/cvs/xml-site/targets/fop/design/embedding.html,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- embedding.html 11 Mar 2003 15:34:40 -0000 1.10
+++ embedding.html 25 Mar 2003 02:34:10 -0000 1.11
@@ -142,7 +142,7 @@
<ul>
<li>
-<a href="architecture.html">Architecture</a>
+<a href="architecture.html">Architecture Implementation</a>
</li>
</ul>
1.9 +1 -1 xml-site/targets/fop/design/extending.html
Index: extending.html
===================================================================
RCS file: /home/cvs/xml-site/targets/fop/design/extending.html,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- extending.html 11 Mar 2003 15:34:40 -0000 1.8
+++ extending.html 25 Mar 2003 02:34:10 -0000 1.9
@@ -142,7 +142,7 @@
<ul>
<li>
-<a href="architecture.html">Architecture</a>
+<a href="architecture.html">Architecture Implementation</a>
</li>
</ul>
1.10 +1 -1 xml-site/targets/fop/design/fotree.html
Index: fotree.html
===================================================================
RCS file: /home/cvs/xml-site/targets/fop/design/fotree.html,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- fotree.html 11 Mar 2003 15:34:40 -0000 1.9
+++ fotree.html 25 Mar 2003 02:34:10 -0000 1.10
@@ -142,7 +142,7 @@
<ul>
<li>
-<a href="architecture.html">Architecture</a>
+<a href="architecture.html">Architecture Implementation</a>
</li>
</ul>
1.11 +1 -1 xml-site/targets/fop/design/index.html
Index: index.html
===================================================================
RCS file: /home/cvs/xml-site/targets/fop/design/index.html,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- index.html 11 Mar 2003 15:34:40 -0000 1.10
+++ index.html 25 Mar 2003 02:34:10 -0000 1.11
@@ -142,7 +142,7 @@
<ul>
<li>
-<a href="architecture.html">Architecture</a>
+<a href="architecture.html">Architecture Implementation</a>
</li>
</ul>
1.10 +1 -1 xml-site/targets/fop/design/layout.html
Index: layout.html
===================================================================
RCS file: /home/cvs/xml-site/targets/fop/design/layout.html,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- layout.html 11 Mar 2003 15:34:40 -0000 1.9
+++ layout.html 25 Mar 2003 02:34:10 -0000 1.10
@@ -142,7 +142,7 @@
<ul>
<li>
-<a href="architecture.html">Architecture</a>
+<a href="architecture.html">Architecture Implementation</a>
</li>
</ul>
1.10 +1 -1 xml-site/targets/fop/design/optimise.html
Index: optimise.html
===================================================================
RCS file: /home/cvs/xml-site/targets/fop/design/optimise.html,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- optimise.html 11 Mar 2003 15:34:40 -0000 1.9
+++ optimise.html 25 Mar 2003 02:34:10 -0000 1.10
@@ -142,7 +142,7 @@
<ul>
<li>
-<a href="architecture.html">Architecture</a>
+<a href="architecture.html">Architecture Implementation</a>
</li>
</ul>
1.10 +1 -1 xml-site/targets/fop/design/properties.html
Index: properties.html
===================================================================
RCS file: /home/cvs/xml-site/targets/fop/design/properties.html,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- properties.html 11 Mar 2003 15:34:40 -0000 1.9
+++ properties.html 25 Mar 2003 02:34:10 -0000 1.10
@@ -142,7 +142,7 @@
<ul>
<li>
-<a href="architecture.html">Architecture</a>
+<a href="architecture.html">Architecture Implementation</a>
</li>
</ul>
1.10 +1 -1 xml-site/targets/fop/design/renderers.html
Index: renderers.html
===================================================================
RCS file: /home/cvs/xml-site/targets/fop/design/renderers.html,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- renderers.html 11 Mar 2003 15:34:40 -0000 1.9
+++ renderers.html 25 Mar 2003 02:34:10 -0000 1.10
@@ -142,7 +142,7 @@
<ul>
<li>
-<a href="architecture.html">Architecture</a>
+<a href="architecture.html">Architecture Implementation</a>
</li>
</ul>
1.10 +1 -1 xml-site/targets/fop/design/useragent.html
Index: useragent.html
===================================================================
RCS file: /home/cvs/xml-site/targets/fop/design/useragent.html,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- useragent.html 11 Mar 2003 15:34:40 -0000 1.9
+++ useragent.html 25 Mar 2003 02:34:10 -0000 1.10
@@ -142,7 +142,7 @@
<ul>
<li>
-<a href="architecture.html">Architecture</a>
+<a href="architecture.html">Architecture Implementation</a>
</li>
</ul>
1.14 +0 -0
xml-site/targets/fop/design/alt.design/FOPropertySets.html
Index: FOPropertySets.html
===================================================================
RCS file:
/home/cvs/xml-site/targets/fop/design/alt.design/FOPropertySets.html,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
1.5 +0 -0 xml-site/targets/fop/design/alt.design/FoXMLEvent.html
Index: FoXMLEvent.html
===================================================================
RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/FoXMLEvent.html,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
1.5 +0 -0
xml-site/targets/fop/design/alt.design/SyncedFoXmlEventsBuffer.html
Index: SyncedFoXmlEventsBuffer.html
===================================================================
RCS file:
/home/cvs/xml-site/targets/fop/design/alt.design/SyncedFoXmlEventsBuffer.html,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
1.5 +0 -0 xml-site/targets/fop/design/alt.design/XMLNamespaces.html
Index: XMLNamespaces.html
===================================================================
RCS file:
/home/cvs/xml-site/targets/fop/design/alt.design/XMLNamespaces.html,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
1.4 +0 -0 xml-site/targets/fop/design/alt.design/codedisplay.js
Index: codedisplay.js
===================================================================
RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/codedisplay.js,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
1.4 +0 -0
xml-site/targets/fop/design/alt.design/alt-design-frameset.html
1.3 +0 -0 xml-site/targets/fop/design/alt.design/codeframe.html
1.5 +0 -0 xml-site/targets/fop/design/alt.design/logo.html
1.5 +0 -0 xml-site/targets/fop/design/alt.design/xml-parsing.pdf
<<Binary file>>
1.3 +0 -0
xml-site/targets/fop/design/alt.design/images/design/alt.design/XML-event-buffer.png
<<Binary file>>
1.14 +0 -0
xml-site/targets/fop/design/alt.design/properties/AbstractPropertyValue.html
Index: AbstractPropertyValue.html
===================================================================
RCS file:
/home/cvs/xml-site/targets/fop/design/alt.design/properties/AbstractPropertyValue.html,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
1.14 +0 -0
xml-site/targets/fop/design/alt.design/properties/FOAttributes.html
Index: FOAttributes.html
===================================================================
RCS file:
/home/cvs/xml-site/targets/fop/design/alt.design/properties/FOAttributes.html,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
1.14 +0 -0
xml-site/targets/fop/design/alt.design/properties/PropNames.html
Index: PropNames.html
===================================================================
RCS file:
/home/cvs/xml-site/targets/fop/design/alt.design/properties/PropNames.html,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
1.14 +0 -0
xml-site/targets/fop/design/alt.design/properties/Property.html
Index: Property.html
===================================================================
RCS file:
/home/cvs/xml-site/targets/fop/design/alt.design/properties/Property.html,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
1.14 +0 -0
xml-site/targets/fop/design/alt.design/properties/PropertyConsts.html
Index: PropertyConsts.html
===================================================================
RCS file:
/home/cvs/xml-site/targets/fop/design/alt.design/properties/PropertyConsts.html,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
1.14 +0 -0
xml-site/targets/fop/design/alt.design/properties/PropertyParser.html
Index: PropertyParser.html
===================================================================
RCS file:
/home/cvs/xml-site/targets/fop/design/alt.design/properties/PropertyParser.html,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
1.14 +0 -0
xml-site/targets/fop/design/alt.design/properties/PropertySets.html
Index: PropertySets.html
===================================================================
RCS file:
/home/cvs/xml-site/targets/fop/design/alt.design/properties/PropertySets.html,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
1.14 +0 -0
xml-site/targets/fop/design/alt.design/properties/PropertyTokenizer.html
Index: PropertyTokenizer.html
===================================================================
RCS file:
/home/cvs/xml-site/targets/fop/design/alt.design/properties/PropertyTokenizer.html,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
1.14 +0 -0
xml-site/targets/fop/design/alt.design/properties/PropertyValue.html
Index: PropertyValue.html
===================================================================
RCS file:
/home/cvs/xml-site/targets/fop/design/alt.design/properties/PropertyValue.html,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
1.14 +0 -0
xml-site/targets/fop/design/alt.design/properties/PropertyValueList.html
Index: PropertyValueList.html
===================================================================
RCS file:
/home/cvs/xml-site/targets/fop/design/alt.design/properties/PropertyValueList.html,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
1.14 +0 -0
xml-site/targets/fop/design/alt.design/properties/ShorthandPropSets.html
Index: ShorthandPropSets.html
===================================================================
RCS file:
/home/cvs/xml-site/targets/fop/design/alt.design/properties/ShorthandPropSets.html,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
1.4 +0 -0
xml-site/targets/fop/design/alt.design/properties/codedisplay.js
Index: codedisplay.js
===================================================================
RCS file:
/home/cvs/xml-site/targets/fop/design/alt.design/properties/codedisplay.js,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
1.6 +0 -0
xml-site/targets/fop/design/alt.design/properties/index.html
1.3 +0 -0
xml-site/targets/fop/design/alt.design/properties/index.pdf
<<Binary file>>
1.8 +4 -0 xml-site/targets/fop/dev/configuration.html
Index: configuration.html
===================================================================
RCS file: /home/cvs/xml-site/targets/fop/dev/configuration.html,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- configuration.html 11 Mar 2003 15:34:48 -0000 1.7
+++ configuration.html 25 Mar 2003 02:34:12 -0000 1.8
@@ -180,6 +180,10 @@
<li>
<a href="../design/index.html">Design</a>
</li>
+
+<li>
+<a href="tools.html">Tools</a>
+</li>
</ul>
</li>
1.8 +4 -0 xml-site/targets/fop/dev/examples.html
Index: examples.html
===================================================================
RCS file: /home/cvs/xml-site/targets/fop/dev/examples.html,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- examples.html 11 Mar 2003 15:34:48 -0000 1.7
+++ examples.html 25 Mar 2003 02:34:12 -0000 1.8
@@ -180,6 +180,10 @@
<li>
<a href="../design/index.html">Design</a>
</li>
+
+<li>
+<a href="tools.html">Tools</a>
+</li>
</ul>
</li>
1.8 +4 -0 xml-site/targets/fop/dev/extensions.html
Index: extensions.html
===================================================================
RCS file: /home/cvs/xml-site/targets/fop/dev/extensions.html,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- extensions.html 11 Mar 2003 15:34:48 -0000 1.7
+++ extensions.html 25 Mar 2003 02:34:12 -0000 1.8
@@ -180,6 +180,10 @@
<li>
<a href="../design/index.html">Design</a>
</li>
+
+<li>
+<a href="tools.html">Tools</a>
+</li>
</ul>
</li>
1.8 +23 -1675 xml-site/targets/fop/dev/faq.html
Index: faq.html
===================================================================
RCS file: /home/cvs/xml-site/targets/fop/dev/faq.html,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- faq.html 11 Mar 2003 15:34:48 -0000 1.7
+++ faq.html 25 Mar 2003 02:34:12 -0000 1.8
@@ -2,7 +2,7 @@
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>FOP FAQ</title>
+<title>FOP Developer FAQ</title>
<link type="text/css" href="../skin/page.css" rel="stylesheet">
</head>
<body text="#000000" bgcolor="#FFFFFF">
@@ -180,6 +180,10 @@
<li>
<a href="../design/index.html">Design</a>
</li>
+
+<li>
+<a href="tools.html">Tools</a>
+</li>
</ul>
</li>
@@ -221,7 +225,7 @@
<table class="title" summary="">
<tr>
<td valign="middle">
-<h1>FOP FAQ</h1>
+<h1>FOP Developer FAQ</h1>
</td><td nowrap="nowrap" width="40" align="center"><a class="dida"
href="faq.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" border="0"><br>
PDF</a></td>
</tr>
@@ -231,1702 +235,46 @@
<div style="margin-left: 0 ; border: 2px">
<ul>
<li>
-<a name="part-N10005-menu"></a><a href="#part-N10005">1. General
questions</a>
-<ul>
-<li>
-<a name="faq-N1000A-menu"></a><a href="#faq-N1000A">What is FOP?</a>
-</li>
-<li>
-<a name="faq-N1001D-menu"></a><a href="#faq-N1001D">What can I do with
FOP?</a>
-</li>
-<li>
-<a name="faq-N1002F-menu"></a><a href="#faq-N1002F">What does "FOP" stand
for?</a>
-</li>
-<li>
-<a name="faq-N10044-menu"></a><a href="#faq-N10044">How does FOP interact
with other Apache Projects?</a>
-</li>
-<li>
-<a name="faq-N1005F-menu"></a><a href="#faq-N1005F">What is XSL?</a>
-</li>
-<li>
-<a name="XSLFO-menu"></a><a href="#XSLFO">What is XSLFO?</a>
-</li>
-<li>
-<a name="XSLT-menu"></a><a href="#XSLT">What is XSLT?</a>
-</li>
-<li>
-<a name="faq-N100AC-menu"></a><a href="#faq-N100AC">How can I contribute?</a>
-</li>
-</ul>
-</li>
-<li>
-<a name="part-N100C1-menu"></a><a href="#part-N100C1">2. Common stumbling
blocks</a>
-<ul>
-<li>
-<a name="faq-N100C6-menu"></a><a href="#faq-N100C6">I get the error:
[ERROR]: 'master-reference' for
- 'fo:page-sequence'matches no 'simple-page-master' or
- 'page-sequence-master'</a>
-</li>
-<li>
-<a name="faq-N100DD-menu"></a><a href="#faq-N100DD">My PNG images don't
work.</a>
-</li>
-<li>
-<a name="faq-N100ED-menu"></a><a href="#faq-N100ED">I get a NoClassDefFound
exception.</a>
-</li>
-<li>
-<a name="faq-N10108-menu"></a><a href="#faq-N10108">I get a
NoSuchMethodException or a NoSuchFieldException
- exception.</a>
-</li>
-<li>
-<a name="faq-N10117-menu"></a><a href="#faq-N10117">I get an
OutOfMemoryException.</a>
-</li>
-<li>
-<a name="faq-N10140-menu"></a><a href="#faq-N10140">I get a
MalformedURLException.</a>
-</li>
-<li>
-<a name="faq-N10177-menu"></a><a href="#faq-N10177">I get an "[ERROR]:
null", or a NullPointerException.</a>
-</li>
-<li>
-<a name="faq-N1018C-menu"></a><a href="#faq-N1018C">FOP hangs. FOP does not
exit.</a>
-</li>
-<li>
-<a name="boxoverflow-menu"></a><a href="#boxoverflow">FOP runs forever,
writing lots of ">" to the log.</a>
-</li>
-<li>
-<a name="faq-N101B3-menu"></a><a href="#faq-N101B3">FOP cannot find a file
for fo:external-graphics.</a>
-</li>
-<li>
-<a name="faq-N101C5-menu"></a><a href="#faq-N101C5">FOP does not find my
fonts.</a>
-</li>
-<li>
-<a name="faq-N101D4-menu"></a><a href="#faq-N101D4">Keep-with-next,
keep-with-previous, keep-together
- don't work.</a>
-</li>
-<li>
-<a name="faq-N101EA-menu"></a><a href="#faq-N101EA">My tables are missing,
or missing their content.</a>
-</li>
-<li>
-<a name="faq-N101F9-menu"></a><a href="#faq-N101F9">Text overflowing table
cells and the like is not clipped. Long text
- flows into adjacent cells/block, obscuring stuff there.</a>
-</li>
-<li>
-<a name="faq-N1021F-menu"></a><a href="#faq-N1021F">Page numbers are not
properly right aligned.</a>
-</li>
-<li>
-<a name="faq-N1022E-menu"></a><a href="#faq-N1022E">A graphic is not
displayed.</a>
-</li>
-<li>
-<a name="faq-N10249-menu"></a><a href="#faq-N10249">Hyphenation does not
work.</a>
-</li>
-</ul>
-</li>
-<li>
-<a name="part-N10256-menu"></a><a href="#part-N10256">3. Embedding FOP.
Using FOP in a servlet</a>
+<a name="part_documentation-menu"></a><a href="#part_documentation">1.
Documentation</a>
<ul>
<li>
-<a name="faq-N1025B-menu"></a><a href="#faq-N1025B">How do I use FOP in a
servlet?</a>
-</li>
-<li>
-<a name="faq-N10274-menu"></a><a href="#faq-N10274">How do I use FOP in a
servlet with an XSLT transformation?</a>
-</li>
-<li>
-<a name="faq-N102A3-menu"></a><a href="#faq-N102A3">How do I pass parameters
to the XSLT transformation?</a>
-</li>
-<li>
-<a name="faq-N102AF-menu"></a><a href="#faq-N102AF">How do I use my own
fonts when running FOP from a servlet?</a>
-</li>
-<li>
-<a name="faq-N102C2-menu"></a><a href="#faq-N102C2">How do I set the base
URL in a servlet environment?</a>
-</li>
-<li>
-<a name="faq-N102D1-menu"></a><a href="#faq-N102D1">I keep getting
NoClassDefFound and other exceptions. How do I
- get FOP working for various servlet engines?</a>
-</li>
-<li>
-<a name="faq-N102E3-menu"></a><a href="#faq-N102E3">FOP in IBM Websphere
3.5</a>
-</li>
-<li>
-<a name="faq-N102EF-menu"></a><a href="#faq-N102EF">FOP and
multithreading</a>
+<a name="javadoc_location-menu"></a><a href="#javadoc_location">How do I get
the javadocs for FOP?</a>
</li>
</ul>
</li>
<li>
-<a name="part-N102FF-menu"></a><a href="#part-N102FF">4. Batik/SVG specific
questions</a>
+<a name="part_further_help-menu"></a><a href="#part_further_help">2. Further
Help</a>
<ul>
<li>
-<a name="faq-N10304-menu"></a><a href="#faq-N10304">SVG text rendered in bad
quality. How do I put SVG text as text
- into PDF?</a>
-</li>
-<li>
-<a name="faq-N10314-menu"></a><a href="#faq-N10314">How do I use FOP with
SVG on headless servers?</a>
-</li>
-<li>
-<a name="svghangs-menu"></a><a href="#svghangs">FOP does not exit if a SVG
is included.</a>
-</li>
-<li>
-<a name="faq-N10340-menu"></a><a href="#faq-N10340">Problems with SVG
referring to gradients etc. using
- "uri(#stuff)" (MalformedURLException or stuff not found)</a>
-</li>
-</ul>
-</li>
-<li>
-<a name="part-N10371-menu"></a><a href="#part-N10371">5. PDF specific
(includes Acrobat peculiarities)</a>
-<ul>
-<li>
-<a name="faq-N10376-menu"></a><a href="#faq-N10376">How do I embed fonts in
PDF?</a>
-</li>
-<li>
-<a name="faq-N10386-menu"></a><a href="#faq-N10386">Characters not
displayed, or displayed incorrectly, or displayed as "#"</a>
-</li>
-<li>
-<a name="faq-N103A3-menu"></a><a href="#faq-N103A3">PDF encryption, PDF
protection (read-only)</a>
-</li>
-<li>
-<a name="faq-N103AF-menu"></a><a href="#faq-N103AF">Watermarks</a>
-</li>
-<li>
-<a name="faq-N103BE-menu"></a><a href="#faq-N103BE">PDF prints contorted</a>
-</li>
-<li>
-<a name="faq-N103CA-menu"></a><a href="#faq-N103CA">Controlling Acrobat
bookmark display</a>
-</li>
-<li>
-<a name="faq-N103D6-menu"></a><a href="#faq-N103D6">PDF (more precise:
Acrobat Reader) and IEx</a>
-</li>
-</ul>
-</li>
-<li>
-<a name="part-N103E3-menu"></a><a href="#part-N103E3">6. IEx specific
stuff</a>
-<ul>
-<li>
-<a name="faq-N103E8-menu"></a><a href="#faq-N103E8">The FOP servlet is
called multiple times.</a>
-</li>
-<li>
-<a name="faq-N1040C-menu"></a><a href="#faq-N1040C">How do I print PDF
directly from the browser?</a>
-</li>
-</ul>
-</li>
-<li>
-<a name="part-N10422-menu"></a><a href="#part-N10422">7. More general
questions regarding XSLT and XSLFO and basic XML</a>
-<ul>
-<li>
-<a name="faq-N10427-menu"></a><a href="#faq-N10427">(FO) How do I vertically
center an image or a table (or
- whatever)?</a>
-</li>
-<li>
-<a name="faq-N10437-menu"></a><a href="#faq-N10437">(FO) How to get page
numbers printed on the "outer side" of the
- page (for books, obviously)?</a>
-</li>
-<li>
-<a name="faq-N10447-menu"></a><a href="#faq-N10447">(FO) How do I get a
special header on the first page?</a>
-</li>
-<li>
-<a name="oddeven-menu"></a><a href="#oddeven">(FO) Different static content
for odd/even pages</a>
-</li>
-<li>
-<a name="faq-N1046B-menu"></a><a href="#faq-N1046B">(FO) How do I omit my
headers on a blank page? How do I write
- "This page is left blank" on an intentionally blank page?</a>
-</li>
-<li>
-<a name="faq-N10481-menu"></a><a href="#faq-N10481">(FO) How to get Euro
sign/checkbox/some other stuff</a>
-</li>
-<li>
-<a name="faq-N1049F-menu"></a><a href="#faq-N1049F">(FO) How do I keep
linebreaks/hard spaces? How do I get
- preformatted text displayed as expected.</a>
-</li>
-<li>
-<a name="faq-N104B3-menu"></a><a href="#faq-N104B3">(FO) How do I print the
total number of pages, like in "page 1
- of 12"</a>
-</li>
-<li>
-<a name="faq-N104E3-menu"></a><a href="#faq-N104E3">(FO) The header overlaps
body content. The body extends into
- footer.</a>
-</li>
-<li>
-<a name="faq-N104F5-menu"></a><a href="#faq-N104F5">(FO) How do I get lines
in the document, as separators, side
- bars or folding marks?</a>
-</li>
-<li>
-<a name="faq-N10511-menu"></a><a href="#faq-N10511">(XML) Complaints about
&nbsp;. How do I get a non-breaking
- space in FO?</a>
-</li>
-<li>
-<a name="faq-N1051D-menu"></a><a href="#faq-N1051D">(XML) There are
complaints about undefined entities, for example
- complaints about &uuml; which used to work in HTML. How do I enter
- special characters like in HTML?</a>
-</li>
-<li>
-<a name="faq-N1052D-menu"></a><a href="#faq-N1052D">(XML) There are
complaints about illegal characters and entities
- in the input.</a>
-</li>
-<li>
-<a name="faq-N10543-menu"></a><a href="#faq-N10543">(XML) There are
complaints about illegal bytes or characters in
- the input. There are odd characters in the result.</a>
-</li>
-</ul>
-</li>
-<li>
-<a name="part-N10554-menu"></a><a href="#part-N10554">8. General
suggestions. How to solve problems</a>
-<ul>
-<li>
-<a name="faq-N10559-menu"></a><a href="#faq-N10559">Where to post bugs</a>
-</li>
-<li>
-<a name="postquestions-menu"></a><a href="#postquestions">Where to post
questions.</a>
+<a name="other_faqs-menu"></a><a href="#other_faqs">I don't see my question
addressed here. Are there other FAQs?</a>
</li>
</ul>
</li>
</ul>
</div>
-<a name="N10171"></a>
+<a name="N10021"></a>
<h3>Answers</h3>
<div style="margin-left: 0 ; border: 2px">
-<a name="N10174"></a><a name="part-N10005"></a>
-<h4>1. General questions</h4>
+<a name="N10024"></a><a name="part_documentation"></a>
+<h4>1. Documentation</h4>
<div style="margin-left: 0 ; border: 2px">
-<a name="N10178"></a><a name="faq-N1000A"></a>
-<h5>1.1. What is FOP?<span style="float: right"><a
href="#faq-N1000A-menu">^</a></span>
+<a name="N10028"></a><a name="javadoc_location"></a>
+<h5>1.1. How do I get the javadocs for FOP?<span style="float: right"><a
href="#javadoc_location-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
-<p>
- FOP is a print formatter for <a target="_top" href="#XSLFO">XSL
formatting
- objects</a>.
- </p>
-<p>
- It can be used to render an XML file containing XSL formatting
objects
- into a page layout. The main target is PDF but other rendering
targets
- are supported, such as AWT, PCL, text and direct printing.
- </p>
-</div>
-<a name="N10187"></a><a name="faq-N1001D"></a>
-<h5>1.2. What can I do with FOP?<span style="float: right"><a
href="#faq-N1001D-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- FOP provides both an application and a library that converts an
XSL FO
- document into paginated output.
- </p>
-<p>
- The FOP command line application can be directly used to transform
XML
- into PDF, PostScript, PCL and other formats, there is also an AWT
- based viewer integrated.
- </p>
-<p>
- The library can be used in servlets and other Java applications.
- </p>
-</div>
-<a name="N10195"></a><a name="faq-N1002F"></a>
-<h5>1.3. What does "FOP" stand for?<span style="float: right"><a
href="#faq-N1002F-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- It's an acronym for <strong>F</strong>ormatting
- <strong>O</strong>bject <strong>P</strong>rocessor
- </p>
-</div>
-<a name="N101A6"></a><a name="faq-N10044"></a>
-<h5>1.4. How does FOP interact with other Apache Projects?<span
style="float: right"><a href="#faq-N10044-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- FOP is distributed with <a
href="http://xml.apache.org/cocoon">Cocoon</a> as a PDF serializer
- for XSL (FO) documents.
- </p>
-<p>
-
-<a href="http://xml.apache.org/batik">Batik</a> can be used with
- FOP to <a
href="http://xml.apache.org/batik/svgrasterizer.html">transcode an SVG
- image</a> into a PDF document.
- </p>
-</div>
-<a name="N101BD"></a><a name="faq-N1005F"></a>
-<h5>1.5. What is XSL?<span style="float: right"><a
href="#faq-N1005F-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- XSL is a W3C standard concerned with publishing XML documents. It
- consists of two parts: <a target="_top" href="#XSLT">XSLT</a> and
<a target="_top" href="#XSLFO">XSLFO</a>. The acronym expands to
- e<strong>X</strong>tensible <strong>S</strong>tylesheet
- <strong>L</strong>anguage.
- </p>
-</div>
-<a name="N101D6"></a><a name="XSLFO"></a>
-<h5>1.6. What is XSLFO?<span style="float: right"><a
href="#XSLFO-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- XSLFO is an XML vocabulary that is used to specify a pagination and
- other styling for page layout output. The acronym “FO”
stands for
- <strong>F</strong>ormatting <strong>O</strong>bjects. XSLFO can be
- used in conjunction with <a target="_top" href="#XSLT">XSLT</a> to
convert
- from any XML format into a paginated layout ready for printing or
- displaying.
- </p>
-<p>
- XSLFO defines a set of elements in XML that describes the way pages
- are set up. The contents of the pages are filled from flows. There
can
- be static flows that appear on every page (for headers and footers)
- and the main flow which fills the body of the page.
- </p>
-<p>
- Synonyms: XSL FO, XSL (FO), XSL:FO, XSL-FO, Formatting Objects
- </p>
-</div>
-<a name="N101EE"></a><a name="XSLT"></a>
-<h5>1.7. What is XSLT?<span style="float: right"><a
href="#XSLT-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- XSLT describes the transformation of arbitrary XML input into other
- XML (like XSLFO), HTML or plain text. The “T” comes
from
- <strong>T</strong>ransformation. For historical reasons, a
- transformation is often also called a “style sheet”.
- </p>
-<p>
- Synonyms: XSL transformation, XSL:T, XSL style sheet.
- </p>
-</div>
-<a name="N101FC"></a><a name="faq-N100AC"></a>
-<h5>1.8. How can I contribute?<span style="float: right"><a
href="#faq-N100AC-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- There is always plenty of things to do. See <a
href="../limitations.html">limitations</a>
- and <a href="../resources.html">bugzilla</a>.
- </p>
+<p>Currently, the only way to get FOP javadocs is to <a
href="../download.html">
+ Download the source code</a> and then <a
href="../compiling.html">Build
+ FOP</a> using the ant build task "javadocs".</p>
</div>
</div>
-<a name="N1020C"></a><a name="part-N100C1"></a>
-<h4>2. Common stumbling blocks</h4>
+<a name="N10038"></a><a name="part_further_help"></a>
+<h4>2. Further Help</h4>
<div style="margin-left: 0 ; border: 2px">
-<a name="N10210"></a><a name="faq-N100C6"></a>
-<h5>2.1. I get the error: [ERROR]: 'master-reference' for
- 'fo:page-sequence'matches no 'simple-page-master' or
- 'page-sequence-master'<span style="float: right"><a
href="#faq-N100C6-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- FOP was changed to be in accordance with the latest standard
- (see <a href="../resources.html#w3-xsl">XSL
- standard</a>).The page master for a fo:page-sequence is
- now refereced by the master-reference attribute. Replace the
- master-name attributes of your fo:page-sequence elements by
- master-reference attributes. You have to do this also for
- fo:single-page-master-reference,
- fo:repeatable-page-master-reference and
- fo:conditional-page-master-reference elements in you page
- master definitions.
- </p>
-<p>
- See also <a href="../relnotes.html">release notes</a>.
- </p>
-</div>
-<a name="N10223"></a><a name="faq-N100DD"></a>
-<h5>2.2. My PNG images don't work.<span style="float: right"><a
href="#faq-N100DD-menu">^</a></span>
+<a name="N1003C"></a><a name="other_faqs"></a>
+<h5>2.1. I don't see my question addressed here. Are there other FAQs?<span
style="float: right"><a href="#other_faqs-menu">^</a></span>
</h5>
<div style="margin-left: 15 ; border: 2px">
-<p>
- The Jimi image library, which is used for processing images in PNG
and
- other formats, was removed from the distribution for licensing
- reasons. You have to <a target="_blank"
href="http://java.sun.com">download</a>
- and install it by yourself.
- </p>
-</div>
-<a name="N1022F"></a><a name="faq-N100ED"></a>
-<h5>2.3. I get a NoClassDefFound exception.<span style="float: right"><a
href="#faq-N100ED-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>This is typically a problem with your classpath.</p>
-<p>If you are running FOP from the command line:</p>
-<ul>
-
-<li>
- Use the fop.bat or fop.sh command file from the FOP distribution.
- Ensure the directory where FOP and these files have been
installed
- is the current working directory.
- </li>
-
-<li>
- If this doesn't help, check whether still all the jar files
- mentioned in the classpath in the fop.bat file are in their
- respective places.
- </li>
-
-</ul>
-<p>
- If you run FOP embedded in your servlet, web application or other
Java
- application, check the classpath of the application.
- </p>
-</div>
-<a name="N10246"></a><a name="faq-N10108"></a>
-<h5>2.4. I get a NoSuchMethodException or a NoSuchFieldException
- exception.<span style="float: right"><a
href="#faq-N10108-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- This is usually caused by an older version of one of the FOP jars
or
- old XML tools in the classpath. Check in particular for parser.jar,
- jaxp.jar, xml4j.jar or lotusxsl.jar.
- </p>
-<p>
- Incompatible versions of Batik may also cause this problem. Use
- the version of Batik that comes with FOP.
- </p>
-</div>
-<a name="N10251"></a><a name="faq-N10117"></a>
-<h5>2.5. I get an OutOfMemoryException.<span style="float: right"><a
href="#faq-N10117-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- FOP can consume quite a bit of memory, even though this has been
- continually improved. The memory consumption is partially inherent
to
- the formatting process and partially caused by implementation
- choices. For certain layouts, all FO processors currently on the
- market have memory problems.
- </p>
-<p>
- Some hints regarding your document structure:
- </p>
-<ul>
-
-<li>
- Avoid forward references. Forward references cause all
- pages from the page with the reference on to be held in memory
until
- the page with the referenced element is encountered. Common
forward
- references are table of contents at the beginning of the document
- and the <a href="#pagenum">"page N of TOTAL"</a> in footers.
Forward
- references may be required by the task, however, if you are
getting
- a memory overflow you should at least check whether this is
really
- as necessary as claimed. A TOC, for example, could often be
placed
- at the end of the document without dimishing it's value too much,
- the paper can be reshuffled after printing, and you can use
- bookmarks in PDF.
- </li>
-
-<li>
- Avoid large images, especially if they are scaled down. Scale
them
- outside of FOP and use the already scaled images for the FOP
- run. For many image formats it is mainly the size of the image
file
- which matters, not width*height, so you can try other means like
- using a higher compression rate.
- </li>
-
-<li>
- Use multiple page sequences. FOP starts rendering after the end
of a
- page sequence is encountered. While the actual rendering is done
- page by page, some memory allocated for other purposes could
- possibly be freed after the page sequence has been rendered.
- </li>
-
-<li>
- Increase memory settings of the JVM. Be aware that it
- is usually unwise to increase the memory allocated to the JVM
beyond
- the amount of physical RAM, it will significantly slow down.
YMMV.
- </li>
-
-</ul>
-<p>
- There are also some bugs which cause FOP to go into an
nonterminating
- loop, which also often results in a memory overflow. A
characteristic
- symptom are continuous <a target="_top" href="#boxoverflow">box
- overflows</a>. Most of them are triggered by elements not fitting
- in the available space, like big images and improperly specified
width
- of nested block elements. Look for such stuff and correct it.
- </p>
-</div>
-<a name="N10276"></a><a name="faq-N10140"></a>
-<h5>2.6. I get a MalformedURLException.<span style="float: right"><a
href="#faq-N10140-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<a name="MalformedURL"></a>
-<p>
- What you probably think of as "file names" are usually URLs, in
- particular the src attribute of fo:external-graphic.
- </p>
-<p>
- Because usage of URLs is growing, you should make yourself familiar
- with it. The relevant specification is <a
href="http://www.rfc-editor.org/rfc/rfc2396.txt">RFC 2396</a>.
- </p>
-<p>
- In a nutshell, the correct syntax for an absolute file URL is
- <span class="codefrag">file:///some/path/file.ext</span> on Unix
and
- <span class="codefrag">file:///z:/some/path/file.ext</span> on
Windows systems. Note
- the triple slash, and also that only forward slashes are used,
even on
- windows.
- </p>
-<p>
- A relative file URL starts with anything but a slash, and doesn't
have
- the <span class="codefrag">file:</span> prefix, for example <span
class="codefrag">file.ext</span>,
- <span class="codefrag">path/file.ext</span> or <span
class="codefrag">../file.ext</span>. The string
- <span class="codefrag">file:path/file.ext</span> is <em>not</em> a
relative URL,
- in fact, it isn't a valid URL at all. A relative URL is subject to
a
- resolving process, which transforms it into an absolute
- URL.
- </p>
-<p>
- See Understanding URIs and URLs and Understanding
- URL resolving.
- </p>
-</div>
-<a name="N102A9"></a><a name="faq-N10177"></a>
-<h5>2.7. I get an "[ERROR]: null", or a NullPointerException.<span
style="float: right"><a href="#faq-N10177-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- Most often, you supplied an invalid FO document to FOP. Currently
only
- very common errors are intercepted and produce a comprehensible
error
- message. If you forgot container elements like fo:page-sequence or
- fo:flow and put blocks and inline elements directly as children of
- fo:root or fo:page-sequence, you'll only get a
- NullPointerException. Check whether your FO file has a proper
- structure. In some cases there are mandatory properties, like the
- master-reference in fo:conditional-page-master-reference, check
also
- whether you got them right.
- </p>
-<p>
- You can use the FOP DTD or FOP Schema to
- validate your soure. This will catch most, but still not all
problems.
- </p>
-<p>
- If you use XSLT, problems in your style sheet and in your source
XML
- also often produce a NullPointerException. Run the transformation
- separately to check for this, usually you'll get a detailed error
- message from the XSLT processor.
- </p>
-<p>
- If you turn on debugging with the "-d" option you may be able to
- see more detailed information.
- </p>
-</div>
-<a name="N102BA"></a><a name="faq-N1018C"></a>
-<h5>2.8. FOP hangs. FOP does not exit.<span style="float: right"><a
href="#faq-N1018C-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- The most likely reason is a known problem with the Java run time
- environment which is triggered by rendering SVGs. Suns JDK 1.4 does
- not have this problem. See also <a target="_top"
href="#svghangs">FOP does not
- exit if a SVG is included</a>.
- </p>
-<p>
- Another possibility is that FOP went into a non terminating
- loop. Usually this is indicated by lots of log messages of the form
- "[INFO]: [NNNN]" which indicate a new page has been started or <a
target="_top" href="#boxoverflow">box overflows</a>. After some time, FOP will
- crash with an OutOfMemoryException.
- </p>
-<p>
- If you called the FOP command line application from some other
- programm, for example from Java using Runtime.exec(), it may hang
- while trying to write log entries to the output pipe. You have to
read
- the FOP output regularly to empty the pipe buffer. It is best to
avoid
- exec'ing FOP, use the library interface.
- </p>
-</div>
-<a name="N102D0"></a><a name="boxoverflow"></a>
-<h5>2.9. FOP runs forever, writing lots of ">" to the log.<span
style="float: right"><a href="#boxoverflow-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- There is something too large to fit into the intended place,
usually a
- large image, a table whose rows are kept together or a block with a
- space-before or space-after larger than the page size. Catch the
first
- page showing this phenomenon and check it. If it is not obvious
which
- element causes the trouble, remove stuff until the problem goes
- away. Decrease the dimensions of the offending element or
property, or
- increase the dimension of the enclosing element or container, or
- remove keep-with-* properties.
- </p>
-</div>
-<a name="N102D8"></a><a name="faq-N101B3"></a>
-<h5>2.10. FOP cannot find a file for fo:external-graphics.<span
style="float: right"><a href="#faq-N101B3-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- The src attribute of the fo:external-graphics element takes an URI,
- not a file name.
- </p>
-<p>
- Relative URLs are resolved against a base url. For
- the command line FOP application, the base is the directory of the
- input file, either the FO file or the XML source. If FOP is used
- embedded in a servlet you will need to set the base url on
- the user agent.
- </p>
-<p>
- See Understanding URIs and URLs and Understanding
- URL resolving.
- </p>
-</div>
-<a name="N102E6"></a><a name="faq-N101C5"></a>
-<h5>2.11. FOP does not find my fonts.<span style="float: right"><a
href="#faq-N101C5-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- Did you get: ‹Failed to read font metrics file
C:\foo\arial.xml
- : File "C:\foo\arial.xml" not found›? The value for the
- metrics-file attribute in the user config file is actually an URL,
not
- a file name. Use "file:///C:/foo/arial.xml" instead.
- </p>
-<p>
- If you used a relative URL, make sure your application has the
working
- directory you expect. Currently FOP does not use the baseDir for
- resolving relative URLs pointing to font metric files.
- </p>
-</div>
-<a name="N102F1"></a><a name="faq-N101D4"></a>
-<h5>2.12. Keep-with-next, keep-with-previous, keep-together
- don't work.<span style="float: right"><a
href="#faq-N101D4-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- These properties are not implemented, except for keep-with-next and
- keep-with-previous on table rows. In order to take advantage of
them,
- you have to nest stuff to be kept together in a table.
- </p>
-<p>
- The concept is called “blind table”. The table is used
for
- pure layout reasons and not obvious in the output.
- </p>
-<p>
- An example of an image and the image caption to be kept together:
- </p>
-<pre class="code"><fo:table table-layout="fixed" width="100%">
- <fo:table-column column-width="proportional-column-width(1)"/>
- <fo:table-body>
- <fo:table-row keep-with-next="always">
- <fo:table-cell>
- <fo:block>
- <fo:external-graphic src="foo.jpg"/>
- </fo:block>
- </fo:table-cell>
- </fo:table-row>
- <fo:table-row>
- <fo:table-cell>
- <fo:block>Image Caption</fo:block>
- </fo:table-cell>
- </fo:table-row>
- </fo:table-body>
- </fo:table></pre>
-</div>
-<a name="N10303"></a><a name="faq-N101EA"></a>
-<h5>2.13. My tables are missing, or missing their content.<span
style="float: right"><a href="#faq-N101EA-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- Check for fo:table-body around the rows. FOP doesn't raise an
error if
- it is omitted, it just drops the content.
- </p>
-<p>
- Also, the fo:table-with-caption element is not implemented, tables
- within such an element are dropped too. The DocBook style sheets
- generate fo:table-with-caption elements, so watch out.
- </p>
-</div>
-<a name="N1030E"></a><a name="faq-N101F9"></a>
-<h5>2.14. Text overflowing table cells and the like is not clipped. Long text
- flows into adjacent cells/block, obscuring stuff there.<span
style="float: right"><a href="#faq-N101F9-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- Clipping as specified by the <span
class="codefrag">overflow="hidden"</span> is not yet
- implemented. If you have long words overflowing table cells, try
to
- get them hyphenated. Artificial names like product identifications
or
- long numbers usually aren't hyphenated. You can try special
processing
- at XSLT level, like
- </p>
-<ul>
-
-<li>
- clip long text,
- </li>
-
-<li>
- explicit wrapping+clipping,
- </li>
-
-<li>
- insert zero width spaces (U+200B or &#x200B;) to allow FOP to
- wrap.
- </li>
-
-</ul>
-<p>
- Check the <a href="http://dpawson.co.uk/xsl">XSL FAQ</a> and the
- <a href="http://www.mulberrytech.com/xsl/xsl-list/">XSL list
- archive</a> for how to perform these tasks.
- </p>
-</div>
-<a name="N10330"></a><a name="faq-N1021F"></a>
-<h5>2.15. Page numbers are not properly right aligned.<span style="float:
right"><a href="#faq-N1021F-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- This happens for fo:page-number-citation elements if the citation
- occurs before FOP formatted the requested page, usually in TOC or
- index pages.
- </p>
-<p>
- It is caused by the problem that FOP has to guess how much space
the
- yet unknown page number will occupy, and usually the guesses are
- somewhat off. You can try to use a non-proportional font like
Courier
- to remedy this. However, this is likely to look ugly, and wont fix
the
- problem completely.
- </p>
-</div>
-<a name="N1033B"></a><a name="faq-N1022E"></a>
-<h5>2.16. A graphic is not displayed.<span style="float: right"><a
href="#faq-N1022E-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- Several possibilities:
- </p>
-<ul>
-
-<li>
- The graphic is too large to fit into the intended space.
- </li>
-
-<li>
- Some image format subclasses can't be handled, try to convert the
- graphic to a format subclass known to work. (Sorry, no list of
- formats known to work)
- </li>
-
-<li>
- Something else obscures the graphic, for example stuff from a
static
- content (very rare, but has happened).
- </li>
-
-</ul>
-<p>
- See also supported image formats.
- </p>
-</div>
-<a name="N10352"></a><a name="faq-N10249"></a>
-<h5>2.17. Hyphenation does not work.<span style="float: right"><a
href="#faq-N10249-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- Set the language attribute somewhere. Check whether you use a
language
- for which hyphenation is supported. Supported languages can be
deduced
- from the files in the hyph directory of the FOP source
distribution.
- </p>
-</div>
-</div>
-<a name="N1035A"></a><a name="part-N10256"></a>
-<h4>3. Embedding FOP. Using FOP in a servlet</h4>
-<div style="margin-left: 0 ; border: 2px">
-<a name="N1035E"></a><a name="faq-N1025B"></a>
-<h5>3.1. How do I use FOP in a servlet?<span style="float: right"><a
href="#faq-N1025B-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>Look at the servlet example.</p>
-<p>
- A rather minimal code snippet to demonstrate the basics:
- </p>
-<pre class="code">response.setContentType("application/pdf");
-Driver driver=new Driver( new InputSource("foo.fo"),
- response.getOutputStream());
-driver.setRenderer(Driver.RENDER_PDF);
-driver.run();</pre>
-<p>
- Caveat: Internet Explorer will not automatically show the PDF.
Thats a
- well known IEx problem, not with the servlet. You can download the
PDF
- with IEx and view it later. There are other problems with this
code.
- </p>
-<p>
- Please look into Howto embed FOP in a servlet for all
- kinds of details.
- </p>
-</div>
-<a name="N10373"></a><a name="faq-N10274"></a>
-<h5>3.2. How do I use FOP in a servlet with an XSLT transformation?<span
style="float: right"><a href="#faq-N10274-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- Use the TraxInputHandler if both the source XML and XSL are read
from
- files.
- </p>
-<p>
- A demonstration:
- </p>
-<pre class="code">response.setContentType("application/pdf");
-XSLTInputHandler input
- =new XSLTInputHandler(new File("foo.xml"), new File("foo.xsl"));
-Driver driver=new Driver();
-driver.setOutputStream(response.getOutputStream());
-driver.setRenderer(Driver.RENDER_PDF);
-driver.render(input.getParser(), input.getInputSource());</pre>
-<p>
- This minimal code snippet has the same problems as the one from the
- question above. Please inform yourself about the details.
- </p>
-<p>
- If your source XML is generated on the fly, for example from a
- database, a web service, or another servlet, you have to create a
- transformer object explicitely and use a SAX event stream to feed
the
- transformation result into FOP.
- </p>
-<p>
- A demonstration:
- </p>
-<pre class="code">response.setContentType("application/pdf");
-Driver driver =new Driver();
-driver.setOutputStream(response.getOutputStream());
-driver.setRenderer(Driver.RENDER_PDF);
-Transformer transformer=TransformerFactory.newInstance()
- .newTransformer(new StreamSource("foo.xsl"));
-transformer.transform(xmlsource, new
SAXResult(driver.getContentHandler()));</pre>
-<p>
- You don't have to call run() or render() on the driver object.
- </p>
-<p>
- The <span class="codefrag">xmlsource</span> is a placeholder for
your actual XML
- source. You can supply a <span class="codefrag">new StreamSource(
new
- StringReader(xmlstring))</span> if you have to read the XML from a
- string. Constructing an XML string and reparse it is not always a
good
- iea, consider to use a SAXSource if you generate your XML. You
can, of
- course, supply a DOMSource or whatever you like. You can also use
- dynamically generated XSL if you want to.
- </p>
-<p>
- Because you have an explicit transformer object, you can set
- parameters for the transformation run too.
- </p>
-</div>
-<a name="N1039E"></a><a name="faq-N102A3"></a>
-<h5>3.3. How do I pass parameters to the XSLT transformation?<span
style="float: right"><a href="#faq-N102A3-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- See the end of the answer for the question above.
- </p>
-</div>
-<a name="N103A6"></a><a name="faq-N102AF"></a>
-<h5>3.4. How do I use my own fonts when running FOP from a servlet?<span
style="float: right"><a href="#faq-N102AF-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- Declare the fonts in the <span
class="codefrag">userconfig.xml</span> file as
- usual. See <a target="_top" href="#usercfg">loading the user
configuration
- file</a> for further steps.
- </p>
-</div>
-<a name="N103B5"></a><a name="faq-N102C2"></a>
-<h5>3.5. How do I set the base URL in a servlet environment?<span
style="float: right"><a href="#faq-N102C2-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- Use:
- </p>
-<p>
- You need to use the FOUserAgent that contains a base url.
- </p>
-</div>
-<a name="N103C0"></a><a name="faq-N102D1"></a>
-<h5>3.6. I keep getting NoClassDefFound and other exceptions. How do I
- get FOP working for various servlet engines?<span style="float:
right"><a href="#faq-N102D1-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- There are various classpath issues, and possible conflicts with
- existing XML/XSLT libraries. Because servlet containers often use
- their own classloaders for loading webapps, bugs and security
problems
- can be bothersome as well.
- </p>
-<p>
- Tomcat comes with detailed instructions for installing FOP and
Cocoon,
- check the documentation. There are known bugs to be circumvented,
in
- particular in Tomcat 4.0.3.
- </p>
-<p>
- Websphere 3.5: See next question.
- </p>
-</div>
-<a name="N103CE"></a><a name="faq-N102E3"></a>
-<h5>3.7. FOP in IBM Websphere 3.5<span style="float: right"><a
href="#faq-N102E3-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- Put a copy of a working parser in some directory where WebSphere
can
- access it, for example, if /usr/webapps/yourapp/servlets is the
- classpath for your servlets, copy the Xerces jar into it (any other
- directory would also be fine). Do not add the jar to the servlet
- classpath, but add it to the classpath of the application server
which
- contains your web application. In the WebSphere administration
- console, click on the "environment" button in the "general" tab.
Fill
- CLASSPATH in the "variable name" box and
- /usr/webapps/yourapp/servlets/Xerces.jar (or whatever your complete
- path is) in the value box, press "OK", then apply the change and
- restart the application server.
- </p>
-</div>
-<a name="N103D6"></a><a name="faq-N102EF"></a>
-<h5>3.8. FOP and multithreading<span style="float: right"><a
href="#faq-N102EF-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- FOP is not completely thread safe. At the very least you'll have to
- create a Driver object for every thread unless you prefer your
threads
- being blocked.
- </p>
-<p>
- Even though the relevant methods of the Driver object are
- synchronized, there are still problems because FOP uses static
- variables for configuration data and loading images. Be sure not
- to change the configuration data while there is a Driver object
- rendering. It is recommended to setup the configuration only
- once while initialising the servlet. If you have to change the
- configuration data more often, or if you have several servlets
- within the same webapp using FOP, consider implementing a
- singleton class encapsulating both the configuration settings
- and running FOP in synchronized methods.
- </p>
-</div>
-</div>
-<a name="N103E1"></a><a name="part-N102FF"></a>
-<h4>4. Batik/SVG specific questions</h4>
-<div style="margin-left: 0 ; border: 2px">
-<a name="N103E5"></a><a name="faq-N10304"></a>
-<h5>4.1. SVG text rendered in bad quality. How do I put SVG text as text
- into PDF?<span style="float: right"><a
href="#faq-N10304-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- There is an implementation of a Batik bridge and text painter
- that handles SVG text nodes.
- If it is possible for this to draw the text as PDF text in the
- PDF document then it will do so otherwise the stroking
- text painter is used. There are some cases that are not implemented
- yet such as tspan and outlined text. See
- <a href="svg.html">SVG page</a> for more details.
- </p>
-</div>
-<a name="N103F1"></a><a name="faq-N10314"></a>
-<h5>4.2. How do I use FOP with SVG on headless servers?<span style="float:
right"><a href="#faq-N10314-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- Batik uses AWT classes for rendering SVG, which in turn needs an X
- server on Unixish systems. If you run a server without X, or if you
- can't connect to the X server due to security restrictions or
- policies, SVG rendering will fail.
- </p>
-<p>
- There are still several options:
- </p>
-<ul>
-
-<li>
- If you are using JDK 1.4, start it with the
-Djava.awt.headless=true
- command line option.
- </li>
-
-<li>
- Install a X server which provides an im-memory framebuffer
without
- actually using a screen device or any display hardware, like
Xvfb.
- </li>
-
-<li>
- Use a toolkit which emulates AWT without the need of an
underlying X
- server, like <a href="http://www.eteks.com/pja/en">PJA</a>. The
PJA toolkit is
- free and comes with detailed installation instructions.
- </li>
-
-</ul>
-</div>
-<a name="N1040C"></a><a name="svghangs"></a>
-<h5>4.3. FOP does not exit if a SVG is included.<span style="float:
right"><a href="#svghangs-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- Applies to older FOP versions and JDK 1.3 and older. That's because
- there is an AWT thread hanging around. The solution is to put a
- System.exit(0) somewhere.
- </p>
-</div>
-<a name="N10414"></a><a name="faq-N10340"></a>
-<h5>4.4. Problems with SVG referring to gradients etc. using
- "uri(#stuff)" (MalformedURLException or stuff not found)<span
style="float: right"><a href="#faq-N10340-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- This is really a "resolving relative URI" problem with some
- twists. The problem is that the <span
class="codefrag">#stuff</span> URL fragment
- identifier is resolved within the current SVG document. So the
- reference must be valid within the XML subset and it cannot
- reference other SVG documents in the same XML file. Some options
- to try:
- </p>
-<ul>
-
-<li>
- Put the SVG into a separate file and use it with
- fo:external-graphics.
- </li>
-
-<li>
- Use a separate SVG file which contains only the gradient (and
- perhaps other SVG stuff you want to reference) and point an
absolute
- URL to it:
- <span
class="codefrag">fill="url(file:///c:/refstuff/grad.svg#PurpleToWhite)"</span>.
- </li>
-
-<li>
- Same as above but use a relative URL:
- <span
class="codefrag">fill="url(grad.svg#PurpleToWhite)"</span>. This may be easier
- to deploy.
- </li>
-
-<li>
- Make sure that the reference is valid in the current SVG
document.
- </li>
-
-</ul>
-<p>
- In any case, the referenced stuff has to be pointed to by an URL.
It
- doesn't necessarily have to be a file URL, HTTP should also
- work. Also, expect a performance hit in all cases, because another
XML
- file has to be retrieved and parsed.
- </p>
-<p>
- Ultimately, both FOP and especially Batik should be fixed to make
- your code work as expected, but this will not only take some time
- but also some effort by a standard committee in order to make the
- semantics of this kind of references in embedded SVG clearer.
- </p>
-<p>See also <a href="#MalformedURL">MalformedURLException</a>
-</p>
-</div>
-</div>
-<a name="N10440"></a><a name="part-N10371"></a>
-<h4>5. PDF specific (includes Acrobat peculiarities)</h4>
-<div style="margin-left: 0 ; border: 2px">
-<a name="N10444"></a><a name="faq-N10376"></a>
-<h5>5.1. How do I embed fonts in PDF?<span style="float: right"><a
href="#faq-N10376-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- See the <a href="fonts.html">Fonts</a> page for information
- about embedding fonts.
- </p>
-</div>
-<a name="N10450"></a><a name="faq-N10386"></a>
-<h5>5.2. Characters not displayed, or displayed incorrectly, or displayed
as "#"<span style="float: right"><a href="#faq-N10386-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>Answers are that fonts must be available for the output format, and
- the selected font must contain glyphs for the desired character.
-PDF has a set of <a href="output.html#pdf-fonts">defined fonts</a>, other
fonts can be embedded following the
-<a href="fonts.html">instructions</a>.
-To find out if the characters you need are in the core fonts then
-(todo - find a glyph font table for the fonts).
-</p>
-<p> For example, for most symbols, the symbol font has to be selected
- explicitely (in future it should be possible to specify a list of fonts
-where it will select the font for the specified character):
-</p>
-<p> <fo:inline
font-family="Symbol">&#x2205;</fo:inline></p>
-<p> gives EMPTY SET while the same characters in the default font results
- in AE LIGATURE (which happens to occupy the same place in the default
- font as the EMPTY SET in the Symbol font). The "#" shows up if the
- selected font does not define a glyph for the translated index.</p>
-</div>
-<a name="N10469"></a><a name="faq-N103A3"></a>
-<h5>5.3. PDF encryption, PDF protection (read-only)<span style="float:
right"><a href="#faq-N103A3-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>use some other tool to postprocess the PDF (itext, or something?)</p>
-</div>
-<a name="N10471"></a><a name="faq-N103AF"></a>
-<h5>5.4. Watermarks<span style="float: right"><a
href="#faq-N103AF-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p> Answer: see 3.3, or use a a region overlapping the flowing text and put
- an image there:
-</p>
-<p> > From: [EMAIL PROTECTED]
- Use the region-before. Make it large enough to contain your image and
then
- include a block (and if required an absolutely positioned
block-container)
- with your image in the static-content for the region-before.
- Could use some code here...
- </p>
-</div>
-<a name="N1047C"></a><a name="faq-N103BE"></a>
-<h5>5.5. PDF prints contorted<span style="float: right"><a
href="#faq-N103BE-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>Check paper size in Acrobat settings and "fit to page" (or something)</p>
-</div>
-<a name="N10484"></a><a name="faq-N103CA"></a>
-<h5>5.6. Controlling Acrobat bookmark display<span style="float: right"><a
href="#faq-N103CA-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p> Not possible with FOP. Postprocess the PDF.</p>
-</div>
-<a name="N1048C"></a><a name="faq-N103D6"></a>
-<h5>5.7. PDF (more precise: Acrobat Reader) and IEx<span style="float:
right"><a href="#faq-N103D6-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>see #later</p>
-</div>
-</div>
-<a name="N10494"></a><a name="part-N103E3"></a>
-<h4>6. IEx specific stuff</h4>
-<div style="margin-left: 0 ; border: 2px">
-<a name="N10498"></a><a name="faq-N103E8"></a>
-<h5>6.1. The FOP servlet is called multiple times.<span style="float:
right"><a href="#faq-N103E8-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- This is a problem of Internet Explorer requesting the content
several
- times. Some suggestions:
- </p>
-<ul>
-
-<li>
- Use a URL ending in <span class="codefrag">.pdf</span>, like
- <span class="codefrag">http://myserver/servlet/stuff.pdf</span>.
Yes, the servlet can
- be configured to handle this. If the URL has to contain
parameters,
- try to have both the base URL as well as the last parameter end
in
- <span class="codefrag">.pdf</span>, if necessary append a dummy
parameter, like
- <span
class="codefrag">http://myserver/servlet/stuff.pdf?par1=a&par2=b&d=.pdf</span>.
The
- effect may depend on IEx version.
- </li>
-
-<li>
- Give IEx the opportunity to cache. In particular, ensure the
server
- does not set any headers causing IEx not to cache the content.
This
- may be a real problem if the document is sent over HTTPS. Consult
- your server manual.
- </li>
-
-<li>
- Cache in the server. Including a parameter in the URL which has a
- timestamp as the value may help you to decide whether a request
is
- repeated. IEx is reported to retrieve a document up to three
times,
- but never more often.
- </li>
-
-</ul>
-</div>
-<a name="N104B8"></a><a name="faq-N1040C"></a>
-<h5>6.2. How do I print PDF directly from the browser?<span style="float:
right"><a href="#faq-N1040C-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- It depends whether you mean "printing to a printer under control
of the
- server" or "printing on the client's printer".
- </p>
-<p>
- For the first problem, look at the print servlet in the FOP
- examples. You'll have to gather any printer settings in an HTML
form
- and send it to the server.
- </p>
-<p>
- For the second task, you can use some client side script to start
- Acrobat Reader in print mode, or use a Java applet based on the FOP
- print servlet. This depends heavily on the client installation and
- should not relied on except in tightly controlled environments.
- </p>
-<p>
- See also
http://marc.theaimsgroup.com/?l=fop-dev&m=101065988325115&w=2
- </p>
-</div>
-</div>
-<a name="N104C9"></a><a name="part-N10422"></a>
-<h4>7. More general questions regarding XSLT and XSLFO and basic XML</h4>
-<div style="margin-left: 0 ; border: 2px">
-<a name="N104CD"></a><a name="faq-N10427"></a>
-<h5>7.1. (FO) How do I vertically center an image or a table (or
- whatever)?<span style="float: right"><a
href="#faq-N10427-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- Use display-align="center". FOP implements this for block
containers
- and table cell. A small self-contained document centering an image
on
- a page:
- </p>
-<pre class="code"><?xml version="1.0"?>
-<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
- xmlns:svg="http://www.w3.org/2000/svg">
- <fo:layout-master-set>
- <fo:simple-page-master master-name="content"
- page-width="210mm" page-height="297mm">
- <fo:region-body/>
- </fo:simple-page-master>
- </fo:layout-master-set>
- <fo:page-sequence master-reference="content">
- <fo:flow flow-name="xsl-region-body">
- <fo:table table-layout="fixed" width="100%">
- <fo:table-column column-width="proportional-column-width(1)"/>
- <fo:table-body>
- <fo:table-row height="297mm">
- <fo:table-cell display-align="center">
- <fo:block text-align="center">
- <fo:external-graphic src="fop.jpg"/>
- </fo:block>
- </fo:table-cell>
- </fo:table-row>
- </fo:table-body>
- </fo:table>
- </fo:flow>
- </fo:page-sequence>
-</fo:root></pre>
-</div>
-<a name="N104D9"></a><a name="faq-N10437"></a>
-<h5>7.2. (FO) How to get page numbers printed on the "outer side" of the
- page (for books, obviously)?<span style="float: right"><a
href="#faq-N10437-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- That's about different static content on <a target="_top"
href="#oddeven">odd/even pages</a>.
- </p>
-</div>
-<a name="N104E5"></a><a name="faq-N10447"></a>
-<h5>7.3. (FO) How do I get a special header on the first page?<span
style="float: right"><a href="#faq-N10447-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- You can insert it into the flow instead of the static content.
- Alternatively, use a page master referring to different page
masters
- for the first page and the rest. It is quite similar to the
odd/even
- page mechanism. A code sample:
- </p>
-<pre class="code"><?xml version="1.0"?>
-<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
- <fo:layout-master-set>
- <fo:simple-page-master master-name="first"
- page-height="297mm" page-width="210mm"
- margin-top="20mm" margin-bottom="20mm"
- margin-left="25mm" margin-right="25mm">
- <fo:region-body margin-bottom="20mm"/>
- <fo:region-after region-name="footer-first" extent="20mm"/>
- </fo:simple-page-master>
- <fo:simple-page-master master-name="rest"
- page-height="297mm" page-width="210mm"
- margin-top="20mm" margin-bottom="20mm"
- margin-left="25mm" margin-right="25mm">
- <fo:region-body margin-bottom="20mm"/>
- <fo:region-after region-name="footer-rest" extent="20mm"/>
- </fo:simple-page-master>
- <fo:page-sequence-master master-name="document">
- <fo:repeatable-page-master-alternatives>
- <fo:conditional-page-master-reference page-position="first"
- master-reference="first"/>
- <fo:conditional-page-master-reference page-position="rest"
- master-reference="rest"/>
- </fo:repeatable-page-master-alternatives>
- </fo:page-sequence-master>
- </fo:layout-master-set>
- <fo:page-sequence master-reference="document">
- <fo:static-content flow-name="footer-first">
- <fo:block text-align="center">First page.</fo:block>
- </fo:static-content>
- <fo:static-content flow-name="footer-rest">
- <fo:block text-align-last="center">Other page.</fo:block>
- </fo:static-content>
- <fo:flow flow-name="xsl-region-body">
- <fo:block/>
- <fo:block break-before="page"/>
- <fo:block break-before="page"/>
- </fo:flow>
- </fo:page-sequence>
-</fo:root></pre>
-</div>
-<a name="N104F1"></a><a name="oddeven"></a>
-<h5>7.4. (FO) Different static content for odd/even pages<span style="float:
right"><a href="#oddeven-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- There are examples in the FO distribution and in the XSL FAQ FO
- section http://www.dpawson.co.uk/xsl/sect3/index.html
- </p>
-<p>
- Define a page master with alternating pages masters for odd and
even
- pages, specify appropriate regions in these page masters, and be
sure
- to give them different names. You use these names to put different
- static content in these regions. A self contained document
- demonstrating this:
- </p>
-<pre class="code"><?xml version="1.0"?>
-<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
- <fo:layout-master-set>
- <fo:simple-page-master master-name="even"
- page-height="297mm" page-width="210mm"
- margin-top="20mm" margin-bottom="20mm"
- margin-left="25mm" margin-right="25mm">
- <fo:region-body margin-bottom="20mm"/>
- <fo:region-after region-name="footer-even" extent="20mm"/>
- </fo:simple-page-master>
- <fo:simple-page-master master-name="odd"
- page-height="297mm" page-width="210mm"
- margin-top="20mm" margin-bottom="20mm"
- margin-left="25mm" margin-right="25mm">
- <fo:region-body margin-bottom="20mm"/>
- <fo:region-after region-name="footer-odd" extent="20mm"/>
- </fo:simple-page-master>
- <fo:page-sequence-master master-name="document">
- <fo:repeatable-page-master-alternatives>
- <fo:conditional-page-master-reference odd-or-even="even"
- master-reference="even"/>
- <fo:conditional-page-master-reference odd-or-even="odd"
- master-reference="odd"/>
- </fo:repeatable-page-master-alternatives>
- </fo:page-sequence-master>
- </fo:layout-master-set>
- <fo:page-sequence master-reference="document">
- <fo:static-content flow-name="footer-even">
- <fo:block
text-align="start"><fo:page-number/></fo:block>
- </fo:static-content>
- <fo:static-content flow-name="footer-odd">
- <fo:block
text-align-last="end"><fo:page-number/></fo:block>
- </fo:static-content>
- <fo:flow flow-name="xsl-region-body">
- <fo:block/>
- <fo:block break-before="page"/>
- </fo:flow>
- </fo:page-sequence>
-</fo:root></pre>
-</div>
-<a name="N10500"></a><a name="faq-N1046B"></a>
-<h5>7.5. (FO) How do I omit my headers on a blank page? How do I write
- "This page is left blank" on an intentionally blank page?<span
style="float: right"><a href="#faq-N1046B-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- A blank page can be forced by a <span
class="codefrag">break-before="page-even"</span>
- or similar properties, or by a force-page-count="end-on-odd" on a
page
- sequence, which ensures a new chapter or something starts on the
- preferred page.
- </p>
-<p>
- You can define a conditional page master with a page master
specific
- for blank pages. This allows you to specify static content for
blank
- pages (by definition, a page is blank if no content from a flow is
- rendered on the page). You can omit your normal headers and
footers,
- and use for example an extended header to print the "..left blank"
- statement.
- </p>
-<pre class="code"><?xml version="1.0"?>
-<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
- <fo:layout-master-set>
- <fo:simple-page-master master-name="normal"
- page-height="297mm" page-width="210mm"
- margin-top="20mm" margin-bottom="20mm"
- margin-left="25mm" margin-right="25mm">
- <fo:region-body margin-bottom="20mm"/>
- <fo:region-after region-name="footer-normal" extent="20mm"/>
- </fo:simple-page-master>
- <fo:simple-page-master master-name="blank"
- page-height="297mm" page-width="210mm"
- margin-top="20mm" margin-bottom="20mm"
- margin-left="25mm" margin-right="25mm">
- <fo:region-body/>
- <fo:region-before region-name="header-blank" extent="297mm"/>
- </fo:simple-page-master>
- <fo:page-sequence-master master-name="document">
- <fo:repeatable-page-master-alternatives>
- <fo:conditional-page-master-reference
blank-or-not-blank="not-blank"
- master-reference="normal"/>
- <fo:conditional-page-master-reference blank-or-not-blank="blank"
- master-reference="blank"/>
- </fo:repeatable-page-master-alternatives>
- </fo:page-sequence-master>
- </fo:layout-master-set>
- <fo:page-sequence master-reference="document"
force-page-count="end-on-even">
- <fo:static-content flow-name="footer-normal">
- <fo:block text-align="center">Normal footer</fo:block>
- </fo:static-content>
- <fo:static-content flow-name="header-blank">
- <fo:block space-before="100mm" text-align-last="center">
- Intentionally left blank.</fo:block>
- </fo:static-content>
- <fo:flow flow-name="xsl-region-body">
- <fo:block/>
- </fo:flow>
- </fo:page-sequence>
-</fo:root></pre>
-</div>
-<a name="N10512"></a><a name="faq-N10481"></a>
-<h5>7.6. (FO) How to get Euro sign/checkbox/some other stuff<span
style="float: right"><a href="#faq-N10481-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- Try to look it up in the Unicode reference at the <a
href="http://www.unicode.org">Unicode Consortium</a>, in
- particular search the <a
href="http://www.unicode.org/charts/charindex.html">reference by
- name</a>. Use <a
href="http://www.w3.org/TR/2000/REC-xml-20001006#sec-references">XML
- character references</a> to put the character into your source
- XML, XSLT or FO.
- </p>
-<p>
- Watch out for font traps, see #, change font temporarily using
- fo:inline if necessary.
- </p>
-<p>
- Alternative: Use an embedded graphic: GIF, PNG, SVG, whatever.
- </p>
-</div>
-<a name="N1052C"></a><a name="faq-N1049F"></a>
-<h5>7.7. (FO) How do I keep linebreaks/hard spaces? How do I get
- preformatted text displayed as expected.<span style="float:
right"><a href="#faq-N1049F-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- The specification provides some properties for this: <a
href="http://www.w3.org/TR/xsl/slice7.html#white-space-collapse">white
- space collapsing</a> and <a
href="http://www.w3.org/TR/xsl/slice7.html#linefeed-treatment">line
- feed treatment</a>. In FOP, use white-space-collapse="false" on an
- enclosing block. This will also preserve line breaks (which is
- actually a bug, expect this to be changed).
- </p>
-</div>
-<a name="N1053C"></a><a name="faq-N104B3"></a>
-<h5>7.8. (FO) How do I print the total number of pages, like in "page 1
- of 12"<span style="float: right"><a
href="#faq-N104B3-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<a name="pagenum"></a>
-<p>
- (XSL FAQ)
- </p>
-<p>
- Put an empty block with an id at the end of the flow:
- </p>
-<pre class="code"><fo:flow ...>
- ...
- <fo:block id="last-page"/>
- </fo:flow></pre>
-<p>
- Get the number of the last page as follows:
- </p>
-<pre class="code"> <fo:page-nuber-citation ref-id="last-page"/></pre>
-<p>
- This does not work for all problems, for example if you have
multiple
- page sequences, an initial page number different from 1, or if you
- force a certain page count, thereby producing blank pages at the
end.
- </p>
-<p>
- There is no reliable way to get the real total page count with FO
- mechanisms, you can only get <em>page numbers</em>.
- </p>
-<p>
- The FOP library provides a method to get the total page count
after a
- FO document has been rendered. You can implement your own wrapper
to
- do a dummy rendering, inquire the total page count and the perform
the
- real rendering, passing the total page count to the XSLT processor
to
- splice it into the generated FO. A sample code:
- </p>
-<pre class="code">import org.apache.fop.apps.*;
-import org.xml.sax.*;
-import java.io.*;
-import javax.xml.transform.*;
-import javax.xml.transform.sax.*;
-import javax.xml.transform.stream.*;
-
-class rendtest {
-
- public static void main(String args[]) {
- try {
- Driver driver=new Driver();
- driver.setOutputStream(new FileOutputStream(args[2]));
- driver.setRenderer(Driver.RENDER_PDF);
- Transformer transformer=TransformerFactory.newInstance()
- .newTransformer(new StreamSource(new File(args[1])));
- transformer.setParameter("page-count","#");
- transformer.transform(new StreamSource(new File(args[0])),
- new SAXResult(driver.getContentHandler()));
- String pageCount=Integer.toString(driver.getResults().getPageCount());
- driver=new Driver();
- driver.setOutputStream(new FileOutputStream(args[2]));
- driver.setRenderer(Driver.RENDER_PDF);
- transformer=TransformerFactory.newInstance()
- .newTransformer(new StreamSource(new File(args[1])));
- transformer.setParameter("page-count",pageCount);
- transformer.transform(new StreamSource(new File(args[0])),
- new SAXResult(driver.getContentHandler()));
- }
- catch( Exception e) {
- e.printStackTrace();
- }
- }
-}</pre>
-<p>
- Declare and use the parameter "page-count" in your XSLT. Be aware
you
- may run into convergence problems: replacing the "#" placeholder
from
- the first run by the actual page count may change it.
- </p>
-</div>
-<a name="N10568"></a><a name="faq-N104E3"></a>
-<h5>7.9. (FO) The header overlaps body content. The body extends into
- footer.<span style="float: right"><a
href="#faq-N104E3-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- Contrary to popular opinion, the regions on a page may overlap.
- Defining a certain body region does not automatically constrain
other
- regions, this has to be done explicitely.
- </p>
-<p>
- If you have a header region with an extent of 20mm, you should
define
- a margin for the body region of at least 20mm too, otherwise the
- header content may overwrite some stuff in the body region. This
- applies similarly to the extent of the after region and the bottom
- margin of the body region.
- </p>
-<p>
- The overlap effect can be used creatively for some purposes.
- </p>
-</div>
-<a name="N10576"></a><a name="faq-N104F5"></a>
-<h5>7.10. (FO) How do I get lines in the document, as separators, side
- bars or folding marks?<span style="float: right"><a
href="#faq-N104F5-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- Several possibilities:
- </p>
-<ul>
-
-<li>
- Use fo:leader (look up the details in the <a
href="http://www.w3.org/TR/xsl/slice6.html#fo_leader">XSLFO
- specification</a>, or use a book). For horizontal lines only.
- </li>
-
-<li>
- Use a solid border on a suitable fo:block. Horizontal and
vertical
- lines only.
- </li>
-
-<li>
- Insert a graphic. GIF, PNG SVG, whatever.
- </li>
-
-</ul>
-</div>
-<a name="N1058E"></a><a name="faq-N10511"></a>
-<h5>7.11. (XML) Complaints about &nbsp;. How do I get a non-breaking
- space in FO?<span style="float: right"><a
href="#faq-N10511-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- Use &#160; everywhere. In your own XML, you could also use a
DTD
- which declares the entity.
- </p>
-</div>
-<a name="N10596"></a><a name="faq-N1051D"></a>
-<h5>7.12. (XML) There are complaints about undefined entities, for example
- complaints about &uuml; which used to work in HTML. How do I enter
- special characters like in HTML?<span style="float: right"><a
href="#faq-N1051D-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- Don't use names as in HTML, use numbers (unless you have a DTD
which
- declares the entities). For predefined HTML entities and their
Unicode
- codepoints see <a
href="http://www.w3.org/TR/html4/sgml/entities.html">Character entity
- references in HTML 4</a>
-
-</p>
-</div>
-<a name="N105A2"></a><a name="faq-N1052D"></a>
-<h5>7.13. (XML) There are complaints about illegal characters and entities
- in the input.<span style="float: right"><a
href="#faq-N1052D-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- Make sure ampersands in text and attributes are written as
&amp;,
- "<" is written as &lt; and ">" as &gt;. It's not
necessary
- everywhere but do it just to be sure.
- </p>
-<p>
- The XML parser should give the proper line and possibly column for
- offending characters.
- </p>
-<p>
- Refer to the <a href="../resources.html">XML specification</a> or
to a good tutorial for
- details of the XML file format.
- </p>
-</div>
-<a name="N105B4"></a><a name="faq-N10543"></a>
-<h5>7.14. (XML) There are complaints about illegal bytes or characters in
- the input. There are odd characters in the result.<span style="float:
right"><a href="#faq-N10543-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- Usually, this is a character encoding problem. See <a
href="http://www.dpawson.co.uk/xsl">XSL FAQ</a>. Many software
- packages producing XML, in particular most XSLT processors,
produce by
- default UTF-8 encoded files. If you view them with something not
aware
- of the encoding, like Notepad for Win95/98/ME/NT, funny characters
are
- displayed. A Å is a giveaway.
- </p>
-</div>
-</div>
-<a name="N105C0"></a><a name="part-N10554"></a>
-<h4>8. General suggestions. How to solve problems</h4>
-<div style="margin-left: 0 ; border: 2px">
-<a name="N105C4"></a><a name="faq-N10559"></a>
-<h5>8.1. Where to post bugs<span style="float: right"><a
href="#faq-N10559-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- See docs. See also <a target="_top" href="#postquestions">"where
to post
- questions"</a>.
- </p>
-</div>
-<a name="N105D0"></a><a name="postquestions"></a>
-<h5>8.2. Where to post questions.<span style="float: right"><a
href="#postquestions-menu">^</a></span>
-</h5>
-<div style="margin-left: 15 ; border: 2px">
-<p>
- Decide where to post:
- </p>
-<ul>
-
-<li>
- You get exceptions. First, check the FAQ whether the exception is
- mentioned. ClassNotFoundException, NoSuchMethodException and
- NoSuchFieldException problems are almost always a problem with
the
- local environment. Check <a
href="http://nagoya.apache.org">bugzilla</a>. If still not found,
- post to fop-dev.
- </li>
-
-<li>
- Something doesn't work with FOP but works with another formatter
- (AntennaHouse, PassiveTex). Check whether this is already
mentioned
- in the release notes, the FOP limitations document or the FAQ.
Post
- to fop-dev or open a bug on <a
href="http://nagoya.apache.org">bugzilla</a>.
- </li>
-
-<li>
- Question about how to use FOP, how to perform certain tasks with
FOP
- or how to integrate FOP into another application should be
posted to
- fop-user.
- </li>
-
-<li>
- XSLT specific stuff sould go to the <a
href="http://www.mulberrytech.com/xsl/xsl-list/">XSL
- list</a>. This includes problems with the language and XSLT
- How-Tos.
- </li>
-
-<li>
- Problems specific to a certain XSLT processor, like Xalan, Saxon
or
- MSXML, should be handled by processor specific lists. This
includes
- problems with deployment, processor specific extensions,
suspected
- bugs and processor specific APIs.
- </li>
-
-<li>
- Problems with servlet containers should be asked on the vendor
- specific lists for these software packets.
- </li>
-
-<li>
- More general questions regarding Java, including deployment, Java
- APIs, classpath issues and property definitions should be
redirected
- to some Java specific list.
- </li>
-
-</ul>
+<p>Yes. See also the <a href="../faq.html">FOP General FAQs</a>.</p>
</div>
</div>
</div>
1.6 +395 -13348xml-site/targets/fop/dev/faq.pdf
<<Binary file>>
1.6 +4 -0 xml-site/targets/fop/dev/fonts.html
Index: fonts.html
===================================================================
RCS file: /home/cvs/xml-site/targets/fop/dev/fonts.html,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- fonts.html 11 Mar 2003 15:34:48 -0000 1.5
+++ fonts.html 25 Mar 2003 02:34:13 -0000 1.6
@@ -180,6 +180,10 @@
<li>
<a href="../design/index.html">Design</a>
</li>
+
+<li>
+<a href="tools.html">Tools</a>
+</li>
</ul>
</li>
1.8 +4 -0 xml-site/targets/fop/dev/index.html
Index: index.html
===================================================================
RCS file: /home/cvs/xml-site/targets/fop/dev/index.html,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- index.html 11 Mar 2003 15:34:48 -0000 1.7
+++ index.html 25 Mar 2003 02:34:13 -0000 1.8
@@ -180,6 +180,10 @@
<li>
<a href="../design/index.html">Design</a>
</li>
+
+<li>
+<a href="tools.html">Tools</a>
+</li>
</ul>
</li>
1.8 +4 -0 xml-site/targets/fop/dev/svg.html
Index: svg.html
===================================================================
RCS file: /home/cvs/xml-site/targets/fop/dev/svg.html,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- svg.html 11 Mar 2003 15:34:48 -0000 1.7
+++ svg.html 25 Mar 2003 02:34:13 -0000 1.8
@@ -180,6 +180,10 @@
<li>
<a href="../design/index.html">Design</a>
</li>
+
+<li>
+<a href="tools.html">Tools</a>
+</li>
</ul>
</li>
1.1 xml-site/targets/fop/dev/compiling.html
Index: compiling.html
===================================================================
<html><head><title>Resource not Found</title><STYLE><!--H1{font-family :
sans-serif,Arial,Tahoma;color : white;background-color : #0086b2;}
BODY{font-family : sans-serif,Arial,Tahoma;color : black;background-color :
white;} B{color : white;background-color : #0086b2;} HR{color : #0086b2;}
--></STYLE> </head><body><h1>Cocoon 2 - Resource not Found</h1><hr size="1"
noshade="noshade"/><p><b>type</b> resource-not-found</p><p><b>message</b>
<u>Page Not Available.</u></p><p><b>description</b> <u>The requested resource
couldn't be found.</u></p><p><b>sender</b>
org.apache.cocoon.Main</p><p><b>source</b> Cocoon commandline
(Main.java)</p><p><b>request-uri</b><pre>dev/compiling.html</pre></p><p><b>missing-file</b><pre>/usr/serverlocal/forrestbot/scripts/work/build/bot/xml-fop/site/dev/compiling.html</pre></p><hr
size="1" noshade="true"/></body></html>
1.1 xml-site/targets/fop/dev/download.html
Index: download.html
===================================================================
<html><head><title>Resource not Found</title><STYLE><!--H1{font-family :
sans-serif,Arial,Tahoma;color : white;background-color : #0086b2;}
BODY{font-family : sans-serif,Arial,Tahoma;color : black;background-color :
white;} B{color : white;background-color : #0086b2;} HR{color : #0086b2;}
--></STYLE> </head><body><h1>Cocoon 2 - Resource not Found</h1><hr size="1"
noshade="noshade"/><p><b>type</b> resource-not-found</p><p><b>message</b>
<u>Page Not Available.</u></p><p><b>description</b> <u>The requested resource
couldn't be found.</u></p><p><b>sender</b>
org.apache.cocoon.Main</p><p><b>source</b> Cocoon commandline
(Main.java)</p><p><b>request-uri</b><pre>dev/download.html</pre></p><p><b>missing-file</b><pre>/usr/serverlocal/forrestbot/scripts/work/build/bot/xml-fop/site/dev/download.html</pre></p><hr
size="1" noshade="true"/></body></html>
1.1 xml-site/targets/fop/dev/tools.html
Index: tools.html
===================================================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Developer Tools</title>
<link type="text/css" href="../skin/page.css" rel="stylesheet">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<!--================= start Navigation Path ==================-->
<table summary="navigation path" width="100%" border="0" cellpadding="0"
cellspacing="0">
<tr>
<td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img
height="1" width="5" alt="" border="0"
src="../skin/images/spacer.gif"><!--===== breadcrumb trail
(javascript-generated) ====--><font size="2" face="Arial, Helvetica,
Sans-serif"><script src="../skin/breadcrumbs.js" language="JavaScript"
type="text/javascript"></script></font></td>
</tr>
<tr>
<td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" border="0"
src="../skin/images/spacer.gif"></td>
</tr>
</table>
<!--================= end Navigation Path ==================-->
<!--================= start Banner ==================-->
<table summary="header with logos" width="100%" border="0" cellpadding="0"
cellspacing="0">
<tr>
<!--================= start Group Logo ==================-->
<td bgcolor="#294563"><a href="http://xml.apache.org/"><img border="0"
class="logoImage" alt="Apache XML" src="../images/group-logo.gif"></a></td>
<!--================= end Group Logo ==================-->
<!--================= start Project Logo ==================--><td
width="100%" align="center" bgcolor="#294563"><a
href="http://xml.apache.org/fop/"><img border="0" class="logoImage" alt="FOP"
src="../images/logo.jpg"></a></td>
<!--================= end Project Logo ==================-->
<!--================= start Search ==================--><td valign="top"
rowspan="2" bgcolor="#294563">
<form target="_blank" action="http://www.google.com/search" method="get">
<table summary="search" border="0" cellspacing="0" cellpadding="0"
bgcolor="#4C6C8F">
<tr>
<td colspan="3"><img height="10" width="1" alt=""
src="../skin/images/spacer.gif"></td>
</tr>
<tr>
<td><img height="1" width="1" alt="" src="../skin/images/spacer.gif"></td><td
nowrap="nowrap"><input value="xml.apache.org" name="sitesearch"
type="hidden"><input size="15" name="q" id="query" type="text"><img height="1"
width="5" alt="" src="../skin/images/spacer.gif"><input name="Search"
value="Search" type="submit">
<br>
<font face="Arial, Helvetica, Sans-serif" size="2" color="white">
the Apache XML site
</font></td><td><img height="1" width="1" alt=""
src="../skin/images/spacer.gif"></td>
</tr>
<tr>
<td><img alt="" border="0" height="10" width="9"
src="../skin/images/search-left.gif"></td><td><img height="1" width="1" alt=""
src="../skin/images/spacer.gif"></td><td><img alt="" border="0" height="10"
width="9" src="../skin/images/search-right.gif"></td>
</tr>
</table>
</form>
</td>
<!--================= start Search ==================--><td
bgcolor="#294563"><img height="10" width="10" alt=""
src="../skin/images/spacer.gif"></td>
</tr>
<tr>
<td valign="bottom" bgcolor="#294563" colspan="2">
<!--================= start Tabs ==================-->
<div class="tab">
<table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="8"><img alt="" height="8" width="8"
src="../skin/images/spacer.gif"></td><td valign="bottom">
<table summary="non selected tab" style="height: 1.6em" border="0"
cellpadding="0" cellspacing="0">
<tr>
<td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt=""
src="../skin/images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a
href="../index.html"><font face="Arial, Helvetica,
Sans-serif">Home</font></a></td><td valign="top" width="5"
bgcolor="#B2C4E0"><img height="5" width="5" alt=""
src="../skin/images/tab-right.gif"></td>
</tr>
</table>
</td><td width="8"><img alt="" height="8" width="8"
src="../skin/images/spacer.gif"></td><td valign="bottom">
<table summary="selected tab" style="height: 1.7em" border="0"
cellpadding="0" cellspacing="0">
<tr>
<td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt=""
src="../skin/images/tabSel-left.gif"></td><td valign="middle"
bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica,
Sans-serif"><b><a href="index.html"><font
color="#000000">Development</font></a></b></font></td><td valign="top"
width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt=""
src="../skin/images/tabSel-right.gif"></td>
</tr>
</table>
</td><td width="8"><img alt="" height="8" width="8"
src="../skin/images/spacer.gif"></td><td valign="bottom">
<table summary="non selected tab" style="height: 1.6em" border="0"
cellpadding="0" cellspacing="0">
<tr>
<td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt=""
src="../skin/images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a
href="../design/index.html"><font face="Arial, Helvetica,
Sans-serif">Redesign</font></a></td><td valign="top" width="5"
bgcolor="#B2C4E0"><img height="5" width="5" alt=""
src="../skin/images/tab-right.gif"></td>
</tr>
</table>
</td><td width="8"><img alt="" height="8" width="8"
src="../skin/images/spacer.gif"></td><td valign="bottom">
<table summary="non selected tab" style="height: 1.6em" border="0"
cellpadding="0" cellspacing="0">
<tr>
<td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt=""
src="../skin/images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a
href="../design/alt.design/index.html"><font face="Arial, Helvetica,
Sans-serif">alt design</font></a></td><td valign="top" width="5"
bgcolor="#B2C4E0"><img height="5" width="5" alt=""
src="../skin/images/tab-right.gif"></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<!--================= end Tabs ==================-->
</td><td bgcolor="#294563"><img alt="" width="1" height="1"
src="../skin/images/spacer.gif"></td>
</tr>
<tr>
<td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt=""
src="../skin/images/spacer.gif"></td>
</tr>
</table>
<!--================= end Banner ==================-->
<!--================= start Menu, NavBar, Content ==================-->
<table summary="page content" bgcolor="#ffffff" width="100%" border="0"
cellpadding="0" cellspacing="0">
<tr>
<td valign="top">
<table summary="menu" border="0" cellspacing="0" cellpadding="0">
<tr>
<!--================= start left top NavBar ==================-->
<td rowspan="3" valign="top">
<table summary="blue line" border="0" cellpadding="0" cellspacing="0">
<tr>
<td bgcolor="#294563"><img width="10" height="1" alt=""
src="../skin/images/spacer.gif"></td>
</tr>
<tr>
<td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica,
Sans-serif"> </font></td>
</tr>
<tr>
<td bgcolor="#294563"><img width="10" height="1" alt=""
src="../skin/images/spacer.gif"></td>
</tr>
</table>
</td>
<!--================= end left top NavBar ==================--><td
bgcolor="#294563"><img width="1" height="1" alt=""
src="../skin/images/spacer.gif"></td><td valign="bottom" bgcolor="#4C6C8F"><img
width="10" height="10" alt="" src="../skin/images/spacer.gif"></td><td
nowrap="nowrap" valign="top" bgcolor="#4C6C8F">
<!--================= start Menu items ==================-->
<div class="menu">
<ul>
<li>
<font color="#CFDCED">Index</font>
<ul>
<li>
<a href="../index.html">FOP Index</a>
</li>
</ul>
</li>
<li>
<font color="#CFDCED">About</font>
<ul>
<li>
<a href="index.html">Index</a>
</li>
<li>
<a href="faq.html">FAQs</a>
</li>
<li>
<a href="examples.html">Examples</a>
</li>
</ul>
</li>
<li>
<font color="#CFDCED">Using</font>
<ul>
<li>
<a href="extensions.html">Extensions</a>
</li>
<li>
<a href="configuration.html">Configuration</a>
</li>
</ul>
</li>
<li>
<font color="#CFDCED">Extras</font>
<ul>
<li>
<a href="svg.html">SVG</a>
</li>
<li>
<a href="fonts.html">Fonts</a>
</li>
</ul>
</li>
<li>
<font color="#CFDCED">Developers</font>
<ul>
<li>
<a target="_blank"
href="http://nagoya.apache.org/wiki/apachewiki.cgi?FOPProjectPages">FOP Wiki</a>
</li>
<li>
<a href="../design/index.html">Design</a>
</li>
<li>
<span class="sel"><font color="#ffcc00">Tools</font></span>
</li>
</ul>
</li>
</ul>
</div>
<!--================= end Menu items ==================-->
</td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt=""
src="../skin/images/spacer.gif"></td><td bgcolor="#294563"><img width="1"
height="1" alt="" src="../skin/images/spacer.gif"></td>
</tr>
<tr>
<td valign="bottom" align="left" colspan="2" rowspan="2"
bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt=""
src="../skin/images/menu-left.gif"></td><td bgcolor="#4C6C8F"><img height="10"
width="10" border="0" alt="" src="../skin/images/spacer.gif"></td><td
valign="bottom" align="right" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img
height="10" width="10" border="0" alt=""
src="../skin/images/menu-right.gif"></td>
</tr>
<tr>
<td height="1" bgcolor="#294563"><img width="1" height="1" alt=""
src="../skin/images/spacer.gif"></td>
</tr>
</table>
</td><td valign="top" width="100%">
<table summary="content" width="100%" border="0" cellpadding="0"
cellspacing="0">
<!--================= start middle NavBar ==================-->
<tr>
<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt=""
src="../skin/images/spacer.gif"></td>
</tr>
<tr>
<td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1"
alt="" src="../skin/images/spacer.gif"></td><td align="left" width="50%"
bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica,
Sans-serif">
</font><img width="10" height="8" alt=""
src="../skin/images/spacer.gif"></td><td align="right" width="50%"
bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica,
Sans-serif">
</font><img width="10" height="8" alt=""
src="../skin/images/spacer.gif"></td><td width="10" bgcolor="#CFDCED"><img
width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
</tr>
<tr>
<td colspan="4" bgcolor="#294563"><img width="10" height="1" alt=""
src="../skin/images/spacer.gif"></td>
</tr>
<!--================= end middle NavBar ==================-->
<!--================= start Content==================-->
<tr>
<td align="left" width="10"><img width="10" height="1" alt=""
src="../skin/images/spacer.gif"></td><td align="left" width="100%">
<div class="content">
<table class="title" summary="">
<tr>
<td valign="middle">
<h1>Developer Tools</h1>
</td><td nowrap="nowrap" width="40" align="center"><a class="dida"
href="tools.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" border="0"><br>
PDF</a></td>
</tr>
</table>
<ul class="minitoc">
<li>
<a href="#cvs">Concurrent Versions System (CVS)</a>
<ul class="minitoc">
<li>
<a href="#cvs_general">General</a>
</li>
<li>
<a href="#wincvs_download">Step-by-step instructions for downloading FOP
using WinCVS</a>
</li>
<li>
<a href="#cvs_patch">Creating Patches</a>
</li>
</ul>
</li>
<li>
<a href="#ide">Integrated Development Environments (IDEs)</a>
</li>
</ul>
<p>This page documents items that may be helpful to other developers,
especially to those who are new to FOP. Exhaustive treatment of these topics is
better suited to other fora, but the information presented here is intended to
deal with FOP-specific issues related to these tools, especially "gotchas", and
to help developers get jump-started.</p>
<a name="N101C1"></a><a name="cvs"></a>
<h3>Concurrent Versions System (CVS)</h3>
<div style="margin-left: 0 ; border: 2px">
<a name="N101C7"></a><a name="cvs_general"></a>
<h4>General</h4>
<div style="margin-left: 0 ; border: 2px">
<p>Visit <a href="http://xml.apache.org/cvs.html">Apache XML CVS
Repositories</a> for useful information.</p>
<p>You will need a CVS client to be able to gain access to the FOP
repository. For general CVS information, visit <a
href="http://www.cvshome.org">CVS Home</a>. Nice GUI clients for Windows, Mac,
and X(??) can be found at <a href="http://www.wincvs.org">WinCVS</a>.</p>
<p>Regardless of what platform you develop on, please be sure to submit
patches that use Unix line endings. If you are using WinCVS, check code out
this way by going to the Admin / Preferences menu item, clicking on the
"Globals" tab, then select the "Checkout text files with the Unix LF (0xa)"
option. You will also need to use an editor that supports opening and saving
files using Unix line endings.</p>
</div>
<a name="N101E3"></a><a name="wincvs_download"></a>
<h4>Step-by-step instructions for downloading FOP using WinCVS</h4>
<div style="margin-left: 0 ; border: 2px">
<ul>
<li>Select "Create / Checkout Module" menu item.</li>
<li>“Checkout Settings” Tab:
<ul>
<li>“Enter the module name and path on the server:”<br>
<span class="codefrag">xml-fop</span>
</li>
<li>“Local folder to checkout to:”<br>Enter your local
directory</li>
</ul>
</li>
<li>“Checkout Options” Tab:
<ul>
<li>If you are checking out the trunk, unset all options.</li>
<li>If you are checking out the maintenance branch (currently distributed
code), check “By revision/tag/branch:” and enter <span
class="codefrag">fop-0_20_2-maintain</span>.</li>
</ul>
</li>
<li>“General” Tab:
<ul>
<li>“Enter the CVSROOT:”<br>
<span class="codefrag">:pserver:[EMAIL PROTECTED]:/home/cvspublic</span>
</li>
<li>“Authentication:”<br>
<span class="codefrag">“passwd” file on the cvs server</span>
</li>
</ul>
</li>
<li>“Globals” Tab:
<ul>
<li>check “Checkout text files with the Unix LF (Oxa)”</li>
</ul>
</li>
<li>Click "OK" and the download should begin.</li>
</ul>
</div>
<a name="N10234"></a><a name="cvs_patch"></a>
<h4>Creating Patches</h4>
<div style="margin-left: 0 ; border: 2px">
<ul>
<li>
<span class="codefrag">cd</span> to a directory that contains all of the
changes that you wish to include in the patch. To comprehend the entire
distribution, <span class="codefrag">cd</span> to the directory above the
"xml-fop" directory that was created when you checked out the code.</li>
<li>Run: <span class="codefrag">cvs -q diff -wu <list of items to
diff></span>
<br>The <list of items to diff> is a space-separated list of files and
directories relative to the current directory that you wish to include in the
diff. For example, to include the entire distribution, assuming that you are in
the directory, above xml-fop, simply enter "xml-fop". This will recursively go
through the directories beneath xml-fop to diff each file.</li>
<li>If you are running WinCVS, select "Admin/Command Line" for a console in
which to key the above command.</li>
<li>On a Linux/Unix machine, you will want to redirect the output from the
above command into a file. If you are using GNU WinCVS, you can cut the output
from the console window and paste it into a file. The "-w" ignores whitespace
differences. The "-u" puts the diff in "universal" format. You may wish to use
the "-N" option as well, which is supposed to treat new files as if there were
an old 0 byte file -- in other words, it is supposed to include the new file in
the patch. However, it only operates on files that have been "add"ed to the CVS
repository, which cannot be done without commit access.</li>
</ul>
</div>
</div>
<a name="N10256"></a><a name="ide"></a>
<h3>Integrated Development Environments (IDEs)</h3>
<div style="margin-left: 0 ; border: 2px">
<p>An IDE is not required, but will generally be found to be helpful,
especially for serious debugging and refactoring.</p>
<p>Borland's JBuilder 7/8 does not support Ant builds unless you have the
Enterprise Edition (which is quite expensive). This causes problems with any
code that is generated by the Ant build. First, you must run the Ant build
before you can use the IDE. Second, when you are editing in the IDE, you must
be editing the generated files, which means that you must make any changes to
the source files in another editor. This is less serious for development on the
trunk, but in the maintenance branch, all source files were "generated".</p>
<p>Sun ONE Studio Four does support Ant, but seems to use a built-in version,
and as of this writing chokes on the FOP build file, saying that it is not
valid. There is awkward because there is no official DTD for Ant, and it may be
merely an Ant version issue.</p>
</div>
</div>
</td><td width="10"><img width="10" height="1" alt=""
src="../skin/images/spacer.gif"></td>
</tr>
<!--================= end Content==================-->
</table>
</td>
</tr>
</table>
<!--================= end Menu, NavBar, Content ==================-->
<!--================= start Footer ==================-->
<table summary="footer" cellspacing="0" cellpadding="0" width="100%"
border="0">
<tr>
<td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt=""
src="../skin/images/spacer.gif"><a href="../skin/images/label.gif"></a><a
href="../skin/images/page.gif"></a><a href="../skin/images/chapter.gif"></a><a
href="../skin/images/chapter_open.gif"></a><a
href="../skin/images/current.gif"></a><a href="..//favicon.ico"></a></td>
</tr>
<tr>
<td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font
size="2" face="Arial, Helvetica, Sans-Serif">Copyright ©
1999-2003 The Apache Software Foundation. All rights
reserved.<script type="text/javascript" language="JavaScript"><!--
document.write(" - "+"Last Published: " +
document.lastModified);
// --></script></font></td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
</tr>
</table>
<!--================= end Footer ==================-->
</body>
</html>
1.1 xml-site/targets/fop/dev/tools.pdf
<<Binary file>>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]