"http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-forrest/src/resources/schema/dtd/faq-v11.dtd">
<faqs title="FOP Developer FAQ">
+ <part id="part_general">
+ <title>General Questions</title>
+ <faq>
+ <question>How can I contribute?</question>
+ <answer>
+ <p>There are many ways that you can help:</p>
+ <ul>
+ <li>You can help us implement missing features that are needed in order to comply with the standard. See the <link href="../compliance.html">Standards Compliance</link> for more details.</li>
+ <li>You can help us address bug reports. See <link href="../resources.html">bugzilla</link> for more information.</li>
+ <li>You can help support our user base by answering questions on the fop-user mailing list.</li>
+ <li>You can help us document FOP better.</li>
+ </ul>
+ </answer>
+ </faq>
+ </part>
<part id="part_documentation">
<title>Documentation</title>
<faq id="javadoc_location">
<document>
<header>
- <title>SVG in FOP</title>
+ <title>SVG Developer Issues</title>
</header>
<body>
- <section>
- <title>Introduction</title>
- <p>
-FOP uses the SVG library from
-<link href="http://xml.apache.org/batik/">Batik</link> to handle SVG.
-This format can be handled as an <code>fo:instream-foreign-object</code>
-or in a separate file referenced with <code>fo:external-graphic</code>.
-Either way the SVG document will be read in and converted into a
-DOM in Batik. This DOM will then be used by the renderer to
-create the graphical image.
- </p>
- <p>
-The AWT and Print renderers simply use batik to draw the SVG into a graphic.
- </p>
- <p>
-In the case of the PDF renderer there is a PDFGraphics2D class that Batik uses
-to render the image into. This class converts the drawing instructions into
-PDF markup which is placed into the current PDF document.
- </p>
- </section>
- <section>
- <title>Converting SVG to a PDF Document</title>
- <p>
-It is possible to convert a standalone SVG document directly
-into a simple page PDF document.
-This is possible through the use of Batik's transcoder mechanism.<br/>
-<code>java org.apache.batik.apps.rasterizer.Main -m application/pdf document.svg</code>
-<br/>
-This will output the svg document as "document.pdf" containing
-a PDF rendering of the SVG file.
- </p>
- <p>
-It is also possible to specify the width and/or height
-of the PDF document on the command line with -w and -h or if
-you are using the transcoder api you can use the transcoding hints.
- </p>
- <p>
-Currently the SVG image is drawn at the SVG document size and
-simply scaled in PDF to the new size. So the result may not be
-the best possible. For example if you have any images or effects
-it will draw them at the original resolution of the svg document.
-When this is viewed in the pdf it will have an incorrect resolution
-for the size of the pdf.
-</p>
- <p>
-The size of the pdf file will also remain the same regardless of
-what size the page is.
- </p>
- <p>
-For more information see <link href="http://xml.apache.org/batik/">Batik</link>
-for how transcoders work.
- </p>
- </section>
+ <p>See also <link href="../svg.html">SVG User Documentation</link> for more information.</p>
<section>
<title>Examples</title>
<p>
<td><link href="fo/embedding.fo.pdf">embedding.fo.pdf</link></td>
</tr>
</table>
- </section>
- <section>
- <title>Important Notes</title>
- <p>
-The svg is inserted into PDF by using PDF commands to draw and fill
-lines and curves. This means that the graphical objects created with
-this remain as vector graphics.
- </p>
- <p>
-There are a number of SVG things that cannot be converted directly into
-PDF. Parts of the graphic such as effects and images are inserted
-into the PDF as a raster graphic. The resolution of this graphic may not
-be ideal depending on the FOP dpi (72dpi) and the scaling for that graphic.
- </p>
- <p>
-Another important note is that text may be converted and drawn as a
-set of shapes by batik.
-If possible it will use normal PDF text when inserting text. It does
-this by checking if the text can be drawn normally and the font is
-supported. This example svg <link href="svg/text.svg">text.svg</link> /
-<link href="svg/text.pdf">text.pdf</link>
-shows how various types and effects with text are handled.
- </p>
- <p>
-If the text cannot be drawn normally then it uses shapes.
-This means that a typical character will have about 10 curves
-(each curve consists of at least 20 characters).
-This can make the pdf files large and when the pdf is viewed the
-viewer does not normally draw those fine curves very well (turning on
-Smooth Line Art in the Acrobat preferences will fix this).
-If the text is inserted into the PDF using the inbuilt text commands
-for PDF it will use a single character.
- </p>
- </section>
- <section>
- <title>Known Problems</title>
-<ul>
-<li>
-soft mask transparency is combined with white so that it looks better
-on pdf 1.3 viewers but this causes the soft mask to be slightly lighter
-or darker on pdf 1.4 viewers
-</li>
-<li>
-there is some problem with a gradient inside a pattern causing a pdf
-error when viewed in acrobat 5
-</li>
-<li>
-text is not always handled correctly, it may select the wrong font
-especially if characters have multiple fonts in the font list
-</li>
-<li>
-more pdf text handling could be implemented
-It could draw the string using the attributed character iterator
-to handle tspans and other simple changes of text.
-</li>
-<li>
-JPEG images are not inserted directly into the pdf document
-This area has not been implemented yet since the appropriate
-method in batik is static
-</li>
-<li>
-Uniform transparency for images and other svg elements that are converted
-into a raster graphic are not drawn properly in PDF. The image is opaque.
-</li>
-</ul>
</section>
<section>
<title>Developer Notes</title>
<document>
<header>
- <title>SVG</title>
- <subtitle>Embedding SVG in FOP</subtitle>
+ <title>Using SVG with FOP</title>
</header>
<body>
-<section>
- <title>SVG in FOP</title>
- <section>
+ <section id="intro">
<title>Introduction</title>
<p>
FOP uses the SVG library from <link href="http://xml.apache.org/batik/">Batik</link> to handle SVG.
</p>
</section>
- <section>
+ <section id="pdf_conversion">
<title>Converting SVG to a PDF Document</title>
<p>
It is possible to convert a standalone SVG document directly into a simple page PDF document.
</p>
</section>
- <section>
- <title>Important Notes</title>
+ <section id="pdf_graphics">
+ <title>Placing SVG Graphics into PDF</title>
<p>
The svg is inserted into PDF by using PDF commands to draw and fill
lines and curves. This means that the graphical objects created with
PDF. Parts of the graphic such as effects, patterns and images are inserted
into the PDF as a raster graphic. The resolution of this graphic may not
be ideal depending on the FOP dpi (72dpi) and the scaling for that graphic.
-This needs to be improved.
+This needs to be improved.</p>
+ <p>
+Currently transparency is not supported in PDF so many svg images that
+contain effects or graphics with transparent areas will not be displayed
+correctly.
</p>
+ </section>
+ <section id="pdf_text">
+ <title>Placing SVG Text into PDF</title>
+ <p>If possible, Batik will use normal PDF text when inserting text. It does
+this by checking if the text can be drawn normally and the font is
+supported. This example svg <link href="svg/text.svg">text.svg</link> /
+<link href="dev/svg/text.pdf">text.pdf</link>
+shows how various types and effects with text are handled.
+Note that tspan and outlined text are not yet implemented.</p>
<p>
-Another important note is that text is converted and drawn as a
-set of shapes by batik. This means that a typical character will
+Otherwise, text is converted and drawn as a set of shapes by batik, using the stroking text painter.
+This means that a typical character will
have about 10 curves (each curve consists of at least 20 characters).
This can make the pdf files large and when the pdf is viewed the
viewer does not normally draw those fine curves very well (turning on
fonts that you have embedded using FOP. The font sizes will be rounded
to an integer value. In future this will be improved.
</p>
- <p>
-Currently transparency is not supported in PDF so many svg images that
-contain effects or graphics with transparent areas will not be displayed
-correctly.
- </p>
</section>
- <section>
- <title>Classes</title>
- <p>
-These are the relevant classes, found in the package org.apache.fop.svg :
- </p>
+ <section>
+ <title>Known Problems</title>
<ul>
-<li><em>PDFGraphics2D</em>
-<br/>
-used for drawing onto a Graphics2D into an existing pdf document, used
-internally to draw the svg.
+<li>
+soft mask transparency is combined with white so that it looks better
+on pdf 1.3 viewers but this causes the soft mask to be slightly lighter
+or darker on pdf 1.4 viewers
</li>
-<li><em>PDFDocumentGraphics2D</em>
-<br/>
-used to create a pdf document and inherits from PDFGraphics2D to do the
-rest of the drawing. Used by the transcoder to create a standalone pdf
-document from an svg. Can be used independantly the same as any Graphics2D.
+<li>
+there is some problem with a gradient inside a pattern causing a pdf
+error when viewed in acrobat 5
</li>
-<li><em>PDFTranscoder</em>
-<br/>
-used by Batik to transcode an svg document into a standalone pdf, via
-PDFDocumentGraphics2D.
+<li>
+text is not always handled correctly, it may select the wrong font
+especially if characters have multiple fonts in the font list
+</li>
+<li>
+more pdf text handling could be implemented
+It could draw the string using the attributed character iterator
+to handle tspans and other simple changes of text.
+</li>
+<li>
+JPEG images are not inserted directly into the pdf document
+This area has not been implemented yet since the appropriate
+method in batik is static
+</li>
+<li>
+Uniform transparency for images and other svg elements that are converted
+into a raster graphic are not drawn properly in PDF. The image is opaque.
</li>
</ul>
-
- </section>
-
-</section>
+ </section>
</body>
</document>