xmlgraphics-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sstei...@apache.org
Subject svn commit: r1869402 [1/5] - in /xmlgraphics/site/trunk/content/fop/2.4: ./ images/
Date Tue, 05 Nov 2019 15:05:41 GMT
Author: ssteiner
Date: Tue Nov  5 13:56:40 2019
New Revision: 1869402

URL: http://svn.apache.org/viewvc?rev=1869402&view=rev
Log:
Add 2.4

Added:
    xmlgraphics/site/trunk/content/fop/2.4/
    xmlgraphics/site/trunk/content/fop/2.4/accessibility.mdtext   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/anttask.mdtext   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/changes_2.4.mdtext   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/compiling.mdtext   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/complexscripts.mdtext   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/configuration.mdtext   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/embedding.mdtext   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/events.mdtext   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/extensions.mdtext   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/fonts.mdtext   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/graphics.mdtext   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/hyphenation.mdtext   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/images/
    xmlgraphics/site/trunk/content/fop/2.4/images/EmbeddingExampleFO2PDF.png   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/images/EmbeddingExampleObj2PDF.png   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/images/EmbeddingExampleObj2XML.png   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/images/EmbeddingExampleXML2FO.png   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/images/EmbeddingExampleXML2PDF.png   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/images/if-architecture-overview.png   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/images/pdf-custom-document-properties.png   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/index.mdtext   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/intermediate.mdtext   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/metadata.mdtext   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/output.mdtext   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/pdfa.mdtext   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/pdfencryption.mdtext   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/pdfx.mdtext   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/releaseNotes_2.4.mdtext   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/running.mdtext   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/servlets.mdtext   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/upgrading.mdtext   (with props)
    xmlgraphics/site/trunk/content/fop/2.4/whitespacemanagement.mdtext   (with props)

Added: xmlgraphics/site/trunk/content/fop/2.4/accessibility.mdtext
URL: http://svn.apache.org/viewvc/xmlgraphics/site/trunk/content/fop/2.4/accessibility.mdtext?rev=1869402&view=auto
==============================================================================
--- xmlgraphics/site/trunk/content/fop/2.4/accessibility.mdtext (added)
+++ xmlgraphics/site/trunk/content/fop/2.4/accessibility.mdtext Tue Nov  5 13:56:40 2019
@@ -0,0 +1,235 @@
+Title: Apache(tm) FOP: Accessibility
+
+#Apache™ FOP: Accessibility
+
+## Overview { #overview}
+
+This page describes the [accessibility](http://en.wikipedia.org/wiki/Accessibility) features of Apache™ FOP. [Section 508](http://www.section508.gov/) defines accessibility in the context of electronic documents for the USA but other countries have similar requirements.
+
+Accessibility features are available only for the PDF output format and there are some implementation limitations. Also, certain actions must be undertaken by the content creator to ensure that FOP can create a truly accessible document.
+
+## Enabling accessibility { #Enabling-accessibility}
+
+There are 3 ways to enable accessibility:
+
+
+1.  **Command line:** The command line option `-a` turns on accessibility:
+
+        fop -a -fo mydocument.fo -pdf mydocument.pdf
+
+1.  **Embedding:**
+
+        :::java
+        userAgent.setAccessibility(true);
+
+1.  **Optional setting in fop.xconf file:**
+
+        :::xml
+        <fop version="1.0">
+          <accessibility>true</accessibility>
+          ...
+        </fop>
+
+When accessibility is enabled, additional information relating to the logical structure of the document is added to the PDF. That information allows the PDF viewer (or a text-to-speech application) to retrieve the natural reading order of the document.
+
+<note>The processing of the logical structure is memory-hungry. You may need to adjust the Java heap size in order to process larger files.</note>
+
+## Changes to your XSL-FO input files { #source}
+
+Apache FOP cannot automatically generate accessible PDFs. Some of the work can only be performed by the content provider. Following are some changes that may be necessary to your XSL-FO content in order to generate really accessible documents:
+
+
+- Table cells must have a table row as their parent.
+
+- Images must have an alternate text: use the `fox:alt-text` extension attribute (in the [fox namespace](extensions.html#fox-namespace)) on `fo:external-graphic` and `fo:instream-foreign-object` to specify a short text describing the image.
+
+- Ensure that the order of `fo:block-container` elements in a page corresponds to the reading order.
+
+- Specify the natural language of the document using the language and country properties (or via the `xml:lang` shorthand property).
+
+## Customized Tagging { #customTags}
+
+The [PDF Reference](#PDFReference) defines a set of standard Structure Types to tag content. For example, ‘P’ is used for identifying paragraphs, ‘H1’ to ‘H6’ for headers, ‘L’ for lists, ‘Div’ for block-level groups of elements, etc. This standard set is aimed at improving interoperability between applications producing or consuming PDF.
+
+FOP provides a default mapping of Formatting Objects to elements from that standard set. For example, `fo:page-sequence` is mapped to ‘Part’, `fo:block` is mapped to ‘P’, `fo:list-block` to ‘L’, etc.
+
+You may want to customize that mapping to improve the accuracy of the tagging or deal with particular FO constructs. For example, you may want to make use of the ‘H1’ to ‘H6’ tags to make the hierarchical structure of the document appear in the PDF. This is achieved by using the `role` XSL-FO property:
+
+    ...
+    <fo:block role="H1" font-weight="bold">I. A Level 1 Heading</fo:block>
+    <fo:block>This is the first paragraph of the first section...</fo:block>
+    ...
+
+If a non-standard structure type is specified, FOP will issue a warning and fall back to the default tag associated to the Formatting Object.
+
+## Treating Content as Artifact
+
+If your document has content that is not meant to appear in the structure tree, you can wrap it in an `fo:wrapper` element whose `role` property has been set to ‘artifact’. For example:
+
+    :::xml
+    <fo:block>blah... blah...
+      <fo:wrapper role="artifact">Funny graphical thing without logical meaning</fo:wrapper>
+      blah... blah... </fo:block>
+
+This special value for the `role` property can also be applied to `fo:static-content` elements; indeed such elements are often used to contain page header information, that is there purely as a reading aid for sighted people and is meaningless when read out loud by a screen reader.
+
+    :::xml
+    <fo:static-content flow-name="xsl-region-before" role="artifact">
+      <fo:block>Page <fo:page-number/></fo:block>
+    </fo:static-content>
+
+## Scope of Header Table Cells { #fox:header}
+
+In XSL-FO, tables are inherently defined row by row. The `fo:table-header` element can be used to define ‘header rows’, in which each cell is a header of the corresponding column (like `TH` cells in HTML). The cell is said to have a column *scope*.
+
+There is no way, however, to define ‘row headers’: cells that have a row scope. Of course it is possible to style a cell to make it look like a header (for example, by using a bolder font), but that won’t be reflected in the structure of the document.
+
+When creating accessible documents, it is desirable to have that information, as it can be used by a screen reader to help the user build a mental representation of the table.
+
+For that purpose, FOP defines the `fox:header` extension property. If an `fo:table-column` element has this property set to `true`, then the corresponding cells will receive the `TH` structure type, and the `Scope` structure attribute will have one of the following value:
+
+* ‘Both’ if the cell also is a descendant of `fo:table-header`;
+* ‘Row’ otherwise.
+
+`fox:header` |
+---------|-----------
+Value: | true &#x7C; false |
+Initial: | false |
+Inherited: | no |
+Applies to: | `fo:table-column` |
+
+If for some reason a cell inside a header column is not meant to be a header cell, the `role` property can be used to override the default behavior and set the structure type to `TD`.
+
+For example, the following table:
+
+    :::xml
+    <fo:table width="100%" table-layout="fixed">
+      <fo:table-column xmlns:fox="http://xmlgraphics.apache.org/fop/extensions" fox:header="true" column-width="proportional-column-width(1)"/>
+      <fo:table-column column-width="proportional-column-width(1)"/>
+      <fo:table-column column-width="proportional-column-width(1)"/>
+      <fo:table-header font-weight="bold">
+        <fo:table-row>
+          <fo:table-cell border="1pt solid black" padding-left="1pt">
+            <fo:block>Header Scope = Both</fo:block>
+          </fo:table-cell>
+          <fo:table-cell border="1pt solid black" padding-left="1pt">
+            <fo:block>Header Scope = Column</fo:block>
+          </fo:table-cell>
+          <fo:table-cell border="1pt solid black" padding-left="1pt">
+            <fo:block>Header Scope = Column</fo:block>
+          </fo:table-cell>
+        </fo:table-row>
+      </fo:table-header>
+      <fo:table-body>
+        <fo:table-row>
+          <fo:table-cell border="1pt solid black" padding-left="1pt" font-weight="bold">
+            <fo:block>Header Scope = Row</fo:block>
+          </fo:table-cell>
+          <fo:table-cell border="1pt solid black" padding-left="1pt">
+            <fo:block>Cell 1.1</fo:block>
+          </fo:table-cell>
+          <fo:table-cell border="1pt solid black" padding-left="1pt">
+            <fo:block>Cell 1.2</fo:block>
+          </fo:table-cell>
+        </fo:table-row>
+        <fo:table-row>
+          <fo:table-cell border="1pt solid black" padding-left="1pt" font-weight="bold">
+            <fo:block>Header Scope = Row</fo:block>
+          </fo:table-cell>
+          <fo:table-cell border="1pt solid black" padding-left="1pt">
+            <fo:block>Cell 2.1</fo:block>
+          </fo:table-cell>
+          <fo:table-cell border="1pt solid black" padding-left="1pt">
+            <fo:block>Cell 2.2</fo:block>
+          </fo:table-cell>
+        </fo:table-row>
+        <fo:table-row>
+          <fo:table-cell border="1pt solid black" padding-left="1pt" role="TD">
+            <fo:block>Non-header</fo:block>
+          </fo:table-cell>
+          <fo:table-cell border="1pt solid black" padding-left="1pt">
+            <fo:block>Cell 3.1</fo:block>
+          </fo:table-cell>
+          <fo:table-cell border="1pt solid black" padding-left="1pt">
+            <fo:block>Cell 3.2</fo:block>
+          </fo:table-cell>
+        </fo:table-row>
+      </fo:table-body>
+    </fo:table>
+
+will be rendered into this:
+
+Header Scope = Both     | Header Scope = Column | Header Scope = Column
+----------------------- | --------------------- | ---------------------
+**Header Scope = Row**  | Cell 1.1              | Cell 1.2
+**Header Scope = Row**  | Cell 2.1              | Cell 2.2
+Non-header              | Cell 3.1              | Cell 3.2
+
+## Testing { #testing}
+
+Accessible PDFs can be tested, for example, using Adobe Acrobat Professional. Its Accessibility Check feature creates a report indicating any deficiencies with a PDF document. Alternatively, you can just let a screen reader read the document aloud.
+
+## Limitations { #limitations}
+
+Accessibility support in Apache FOP is relatively new, so there are certain limitations. Please help us identify and close any gaps.
+
+
+- The natural language can currently only be specified at the page-sequence level. The document language is derived from the language of the first page-sequence. It is currently not possible to override the language inside the content below the page-sequence level.
+
+- It's currently not possible to specify the expanded form of an abbreviation or acronym.
+
+- SVG graphics (or images in general) are treated as a single figure. Text contained in SVGs is not accessible. It's only possible to work with `fox:alt-text`.
+
+- The side regions (region-before, region-after etc.) are currently not specially identified. Screen readers may read their content at page changes.
+
+# PDF/UA (ISO 14289)
+
+PDF/UA (PDF/Universal Accessibility), the standard for accessible PDF technology.
+
+## Usage (fo) { #fo}
+
+Define document title in fo:
+
+    :::xml
+    <fo:declarations>
+      <x:xmpmeta xmlns:x="adobe:ns:meta/">
+        <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+          <rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
+          <dc:title>Document title</dc:title>
+            <dc:creator>Document author</dc:creator>
+            <dc:description>Document subject</dc:description>
+          </rdf:Description>
+        </rdf:RDF>
+      </x:xmpmeta>
+    </fo:declarations>
+
+## Usage (fop.xconf) { #fop-xconf}
+
+Enable PDF/UA-1 in fop.xconf:
+
+    :::xml
+    <fop version="1.0">
+      <accessibility>true</accessibility>
+      <renderers>
+        <renderer mime="application/pdf">
+          <pdf-ua-mode>PDF/UA-1</pdf-ua-mode>  
+        </renderer>
+      </renderers>
+    </fop>
+
+## Related Links { #links}
+
+Many resources providing guidance about creating accessible documents can be found on the web. Here are a few links, along with additional resources around the topic:
+
+
+-  [US Government - Website on Section 508](http://www.section508.gov/)
+
+-  [Wikipedia on Accessibility in general](http://en.wikipedia.org/wiki/Accessibility)
+
+-  [Wikipedia on Accessibility in PDF](http://en.wikipedia.org/wiki/Portable_Document_Format#Accessibility)
+
+-  [PDF Reference 1.4](http://partners.adobe.com/public/developer/en/pdf/PDFReference.pdf) (look up chapters 9.7 "Tagged PDF" and 9.8 "Accessibility Support")
+
+-  [PDF/A support in Apache FOP](pdfa.html)
+
+-  [Developer-oriented details on the accessibility features (on the Wiki)](http://wiki.apache.org/xmlgraphics-fop/PDF_Accessibility)

Propchange: xmlgraphics/site/trunk/content/fop/2.4/accessibility.mdtext
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: xmlgraphics/site/trunk/content/fop/2.4/accessibility.mdtext
------------------------------------------------------------------------------
    svn:executable = *

Added: xmlgraphics/site/trunk/content/fop/2.4/anttask.mdtext
URL: http://svn.apache.org/viewvc/xmlgraphics/site/trunk/content/fop/2.4/anttask.mdtext?rev=1869402&view=auto
==============================================================================
--- xmlgraphics/site/trunk/content/fop/2.4/anttask.mdtext (added)
+++ xmlgraphics/site/trunk/content/fop/2.4/anttask.mdtext Tue Nov  5 13:56:40 2019
@@ -0,0 +1,103 @@
+Title: Apache(tm) FOP: Ant task
+
+#Apache&trade; FOP: Ant task
+
+
+Apache&trade; FOP provides an Ant task for automating the document build process.
+
+## Description { #basics}
+
+The FOP Ant task will convert XSL-FO documents to PDF, PS, PCL etc. output (see [Output formats](output.html) for available formats).
+
+To call FOP tasks within Ant, first add a FOP task definition to your Ant build file. One method of defining the task is as follows:
+
+    :::xml
+    <property name="fop.home" value="....path to your FOP HOME directory..."/>
+
+    <taskdef name="fop"
+             classname="org.apache.fop.tools.anttasks.Fop">
+      <classpath>
+        <fileset dir="${fop.home}/lib">
+          <include name="*.jar"/>
+        </fileset>
+        <fileset dir="${fop.home}/build">
+          <include name="fop.jar"/>
+          <include name="fop-hyph.jar" />
+        </fileset>
+      </classpath>
+    </taskdef>
+
+Then create FOP tasks within your Ant build file, using the FOP task parameters listed below.
+
+## Parameters for FOP Ant task { #parameters}
+
+<caption>Parameters specified as attributes</caption>
+
+| Attribute | Description | Required |
+|-----------|-------------|----------|
+| fofile | XSL-FO file to be rendered | Yes, if no fileset nested element is used |
+| xmlfile | XML input file | Yes, if no fofile is specified |
+| xsltfile | XSLT input file | Yes, if no fofile is specified |
+| outfile | Output filename | Yes, when fofile is used. (This attribute is not valid for filesets.) |
+| format | Possible output formats:<br></br> `application/X-fop-awt-preview` <br></br> `application/X-fop-print` <br></br> `application/X-fop-areatree` <br></br> `application/pdf` <br></br> `application/postscript` <br></br> `application/mif` <br></br> `application/rtf`, `text/richtext`, `text/rtf` <br></br> `application/x-pcl`, `application/vnd.hp-PCL` <br></br> `application/x-afp`, `application/vnd.ibm.modcap` <br></br> `text/plain` <br></br> `image/svg+xml` <br></br> `image/gif` <br></br> `image/png` <br></br> `image/tiff` <br></br> | No, defaults to `application/pdf`  |
+| outdir | Output directory | Required if a fileset is used to specify the files to render; optional for fofile. (Can alternatively specify the full path in the fofile value.) |
+| force | Recreate target files, even if they are newer than their corresponding source files. Note: This attribute is available in post-0.20.5 versions (0.20.x nightly build and 1.0dev) only; target files are always generated (i.e., force=true) in 0.20.5 release. | No, default is `false`  |
+| basedir | Base directory to resolve relative references (e.g., graphics files) within the FO document. | No, for single FO File entry, default is to use the location of that FO file. |
+| relativebase | For fileset usage only. A value of `true` specifies using the location of each .fo file as the base directory for resolving relative file references located within that .fo file. A value of `false` specifies using the value of basedir for all files within the fileset, or just the current working directory if basedir is not specified. | No, default is `false`. |
+| userconfig | User configuration file (same as the FOP "-c" command line option). | No |
+| messagelevel | Logging level<br></br>Possible values: `error`, `warn`, `info`, `verbose`, `debug`. **Currently doesn't work in FOP Trunk!!!**  | No, defaults to `verbose`  |
+| logFiles | Controls whether the names of the files that are processed are logged (`true`) or not (`false`). **Currently doesn't work in FOP Trunk!!!**  | No, default is `true`  |
+| throwexceptions | Controls whether or not an exception is thrown if an error occurs during rendering. | Default is `true`  |
+
+<br/>
+
+<caption>Parameters specified as nested elements</caption>| Attribute | Description | Required |
+|-----------|-------------|----------|
+| fileset |  [FileSets](https://ant.apache.org/manual/Types/fileset.html) are used to specify multiple XSL-FO files to be rendered. | Yes, if no fofile attribute is supplied |
+
+## Examples { #examples}
+
+The following example converts a single XSL-FO file to a PDF document:
+
+    :::xml
+    <target name="generate-pdf" description="Generates a single PDF file">
+       <fop format="application/pdf"
+            fofile="c:\working\foDirectory\foDocument.fo"
+            outfile="c:\working\pdfDirectory\pdfDocument.pdf" />
+    </target>
+
+This example converts all XSL-FO files within an entire directory to PostScript:
+
+    :::xml
+    <target name="generate-multiple-ps"
+            description="Generates multiple PostScript files">
+       <fop format="application/postscript"
+            outdir="${build.dir}" messagelevel="debug">
+            <fileset dir="${fo.examples.dir}">
+               <include name="*.fo"/>
+            </fileset>
+       </fop>
+    </target>
+
+The following example transforms and converts a single XML and XSLT file to an AFP document:
+
+    :::xml
+    <target name="generate-afp-from-transform" description="Generates a single AFP file from an XSLT stylesheet">
+       <fop format="application/x-afp"
+            xmlfile="c:\working\foDirectory\Document.xml"
+            xsltfile="c:\working\foDirectory\Document.xslt"
+            outfile="c:\working\afpDirectory\Document.afp" />
+    </target>
+
+This example transforms and converts all XML files within an entire directory to PostScript:
+
+    :::xml
+    <target name="generate-multiple-ps-from-transform" description="Generates multiple PostScript files using an XSLT stylesheet">
+       <fop format="application/postscript"
+            xsltfile="c:\working\foDirectory\Document.xslt"
+            outdir="${build.dir}" messagelevel="debug">
+            <fileset dir="${test.dir}">
+               <include name="*.xml"/>
+            </fileset>
+       </fop>
+    </target>

Propchange: xmlgraphics/site/trunk/content/fop/2.4/anttask.mdtext
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: xmlgraphics/site/trunk/content/fop/2.4/anttask.mdtext
------------------------------------------------------------------------------
    svn:executable = *

Added: xmlgraphics/site/trunk/content/fop/2.4/changes_2.4.mdtext
URL: http://svn.apache.org/viewvc/xmlgraphics/site/trunk/content/fop/2.4/changes_2.4.mdtext?rev=1869402&view=auto
==============================================================================
--- xmlgraphics/site/trunk/content/fop/2.4/changes_2.4.mdtext (added)
+++ xmlgraphics/site/trunk/content/fop/2.4/changes_2.4.mdtext Tue Nov  5 13:56:40 2019
@@ -0,0 +1,134 @@
+Title: Apache(tm) FOP: History of Changes 2.4
+
+#History of Changes 2.4
+
+## Version 2.4 (5 Nov 2019) { #version_2.4}
+
+See [Change list in Jira](https://issues.apache.org/jira/issues/?jql=project%20%3D%20FOP%20AND%20resolution%20%3D%20Fixed%20AND%20fixVersion%20%3D%202.3%20ORDER%20BY%20updated%20DESC%2C%20created%20DESC%2C%20priority%20DESC).
+
+ - FOP-1760: Add change bar generation
+
+ - FOP-2514: Empty hyphenation-character leads to "String index out of range: 0"
+
+ - FOP-2624: FO to RTF conversion adds unnecessary \cell after <fo:list-block>...</fo:list-block> when it is nested inside any table cell
+
+ - FOP-2733: Drop dependency on Avalon-Framework
+
+ - FOP-2762: Serialisation issues with accessibility and conserve-memory
+
+ - FOP-2793: Misleading statement in README
+
+ - FOP-2797: Bump version
+
+ - FOP-2798: Margins from blank page incorrectly used in subsequence page
+
+ - FOP-2799: Only reduce penalty if there is a existing break
+
+ - FOP-2800: IF Links point to current page instead of earlier page
+
+ - FOP-2802: Java 10 PDF/SVG to Image box not shown
+
+ - FOP-2805: Bump batik version
+
+ - FOP-2810: Incomplete implementation of the simulate-style flag
+
+ - FOP-2811: PDF larger than 100k pages can have wrong content stream
+
+ - FOP-2812: Update PDFBox to 2.0.11
+
+ - FOP-2815: Avoid calling method not in spring-jcl
+
+ - FOP-2817: AFP should reset color for new segment
+
+ - FOP-2818: PDF color spaces are lost when embedding PDF image
+
+ - FOP-2821: 1 bit image fails when using PreloaderRawPNG
+
+ - FOP-2822: Use correct ipd for table inside float
+
+ - FOP-2823: page-index-relative not added when forwards link used to same location
+
+ - FOP-2827: Add support for Khmer complex script
+
+ - FOP-2836: Update PDFBox to 2.0.13
+
+ - FOP-2847: Support palette-based transparency PNG in PDF
+
+ - FOP-2853: Error for SVG using TTF fallback to AFP
+
+ - FOP-2855: Fix letter spacing of spaces inside white-space=pre text
+
+ - FOP-2856: Support compile on Java 12
+
+ - FOP-2866: Using conserve option causes SerializationException
+
+ - FOP-2867: Hyphenation file is not reloaded after a change
+
+ - FOP-2868: OBJR should be a child of each link
+
+ - FOP-2869: basic-link to embedded file broken with encryption
+
+ - FOP-2871: Render space for accessible pdf
+
+ - FOP-2873: Update to PDFBox 2.0.16
+
+ - FOP-2874: Conserve memory policy fails in multi-threaded environment
+
+ - FOP-2875: add support for non-ascii characters in pdf file attachment names, fix name collisions of attachments
+
+ - FOP-2877: Table row was inside footer
+
+ - FOP-2881: Add option for page segment for GOCA
+
+ - FOP-2882: Allow PDFFormXObject to improve performance
+
+ - FOP-2883: Penalty cause table to flow into footer
+
+ - FOP-2885: Update Xerces to 2.12
+
+ - XGC-112: TIFF resolution wrong on Java 10
+
+ - XGC-116: Don't draw fully transparent alpha on PS
+
+### Contributors to this release { #contributors_trunk}
+
+We thank the following people for their contributions to this release.
+
+This is a list of all people who participated as committers:
+
+- Adrian Cumiskey
+- Andreas Delmelle
+- Chris Bowditch
+- Clay Leeds
+- Glenn Adams
+- Luis Bernardo
+- Luca Furini
+- Matthias Reischenbacher
+- Mehdi Houshmand
+- Peter Hancock
+- Pascal Sancho
+- Robert Meyer
+- Simon Steiner
+- Vincent Hennebert
+
+This is a list of other contributors:
+
+- Alexey Neyman
+- Alexios Giotis
+- Athanasios Giannimaras
+- Gonzalo Vasquez
+- Jacopo Cappellato
+- Jeremias Maerki
+- Max Gilead
+- Morten Knudsen
+- Seifeddine Dridi
+- Stephen Moore
+- James Burton
+- Eric Lim
+- Chunlin Yao
+- Jerome Robert
+- Simone Rondelli
+- Stanley Santos de Araújo
+- Agneta Walterscheidt
+- Vlad Arkhipov
+- Björn Kautler

Propchange: xmlgraphics/site/trunk/content/fop/2.4/changes_2.4.mdtext
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: xmlgraphics/site/trunk/content/fop/2.4/changes_2.4.mdtext
------------------------------------------------------------------------------
    svn:executable = *

Added: xmlgraphics/site/trunk/content/fop/2.4/compiling.mdtext
URL: http://svn.apache.org/viewvc/xmlgraphics/site/trunk/content/fop/2.4/compiling.mdtext?rev=1869402&view=auto
==============================================================================
--- xmlgraphics/site/trunk/content/fop/2.4/compiling.mdtext (added)
+++ xmlgraphics/site/trunk/content/fop/2.4/compiling.mdtext Tue Nov  5 13:56:40 2019
@@ -0,0 +1,75 @@
+Title: Apache(tm) FOP: Building from Source Code
+
+#Apache&trade; FOP: Building from Source Code
+
+
+## Do You Need To Build? { #build-needed}
+
+Apache&trade; FOP snapshots are either pre-compiled binary or source. If you are using a binary snapshot, it is already built and there is no need to build it again. If you got the source code from a repository snapshot or via Subversion you will need to build FOP. See the [Download Instructions](../download.html) for information about where to obtain binary or repository snapshots, and whether a binary or source snapshot is best for your needs.
+
+## Set Up Your Environment { #env}
+
+### JDK { #env-jdk}
+
+Building FOP requires a minimum Java Development Kit (JDK/SDK) of {{ fop_minimal_java_requirement }} (A Java Runtime Environment is not sufficient).
+
+### CLASSPATH { #env-classpath}
+
+There is generally no need to setup a classpath. All libraries needed to compile FOP are included in the source distribution and are referenced by the build script. You will only need to adjust the classpath if you build FOP in some other way. See the build script build.xml for details.
+
+### JAVA_HOME { #env-java-home}
+
+The build script uses [Apache Ant](http://ant.apache.org/), a popular Java-based build tool, which usually requires that the environment variable JAVA_HOME point to your local JDK root directory. This is true even if you use JDK 1.5 or above, which normally does not need this setting.
+
+### Apache Ant { #env-ant}
+
+ [Apache Ant](http://ant.apache.org/) (Version 1.7 or later) must be installed in order to build FOP. Following best practices we don't include Ant with FOP anymore. You can find the [instructions to install Ant in the Ant manual](http://ant.apache.org/manual/) on the web.
+
+## Run the Build Script { #build-script}
+
+Change to the FOP root directory and build FOP by executing the build script (build.xml) using the "ant" command.
+
+<note>The "ant" command is only available on your system if you've properly [installed Apache Ant](http://ant.apache.org/manual/) and added Ant's location to the PATH environment variable.</note>
+
+The file build.xml in the FOP root directory is the blueprint that Ant uses for the build. It contains information for numerous build targets, many of which are building blocks to more useful target, and others which are primarily used by the FOP developers. You may benefit from looking through this file to learn more about the various build targets. To obtain a complete list of useful build targets:
+
+    ant -projecthelp
+
+The most useful targets are:
+
+-  **package**: Generates the JAR files (default). This is the normal build that produces a jar file usable for running FOP.
+
+-  **clean**: Cleans the build directory. This is useful for making sure that any build errors are cleaned up before starting a new build. It should not ordinarily be needed, but may be helpful if you are having problems with the build process itself.
+
+-  **javadocs**: Creates the FOP API documentation.
+
+To run the build:
+
+    ant [target ...]
+
+For example to do a normal build for the "all" target (which is the default):
+
+    ant
+
+OR
+
+    ant all
+
+To clean the build directory first:
+
+    ant clean all
+
+<note>If you want to shorten the build time you can just call the "package" target which doesn't perform any automated tests during the build.</note>
+
+## Troubleshooting { #problems}
+
+If you have problems building FOP, please try the following:
+
+
+- Run the build with the target of "clean", then rerun the build.
+
+- Delete the build directory completely, then rerun the build.
+
+- Make sure you do not have a non-FOP version of xerces.jar, xalan.jar, batik.jar, or another dependency product somewhere in your CLASSPATH.
+
+- If the build still fails, see the [Getting Help](../gethelp.html) page for further help.

Propchange: xmlgraphics/site/trunk/content/fop/2.4/compiling.mdtext
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: xmlgraphics/site/trunk/content/fop/2.4/compiling.mdtext
------------------------------------------------------------------------------
    svn:executable = *

Added: xmlgraphics/site/trunk/content/fop/2.4/complexscripts.mdtext
URL: http://svn.apache.org/viewvc/xmlgraphics/site/trunk/content/fop/2.4/complexscripts.mdtext?rev=1869402&view=auto
==============================================================================
--- xmlgraphics/site/trunk/content/fop/2.4/complexscripts.mdtext (added)
+++ xmlgraphics/site/trunk/content/fop/2.4/complexscripts.mdtext Tue Nov  5 13:56:40 2019
@@ -0,0 +1,285 @@
+Title: Apache(tm) FOP: Complex Scripts
+
+#Apache&trade; FOP: Complex Scripts
+
+
+## Overview { #overview}
+
+This page describes the [complex scripts](http://en.wikipedia.org/wiki/Complex_scripts) features of Apache&trade; FOP, which include:
+
+
+- Support for languages written with right-to-left scripts, such as Arabic and Hebrew scripts.
+
+- Support for languages written with South Asian and Southeast Asian scripts, such as Devanagari, Khmer, Tamil, Thai, and others.
+
+- Support for advanced substitution, reordering, and positioning of glyphs according to language and script sensitive rules.
+
+- Support for advanced number to string formatting.
+
+## Disabling complex scripts { #Disabling-complex-scripts}
+
+Complex script features are enabled by default. If some application of FOP does not require this support, then it can be disabled in three ways:
+
+1.  **Command line:**
+
+    The command line option `-nocs` turns off complex script features:
+
+        fop -nocs -fo mydocument.fo -pdf mydocument.pdf
+
+1.  **Embedding:**
+
+        :::java
+        userAgent.setComplexScriptFeaturesEnabled(false);
+
+1.  **Optional setting in fop.xconf file:**
+
+        :::xml
+        <fop version="1.0">
+          <complex-scripts disabled="true"/>
+          ...
+        </fop>`
+
+When complex scripts features are enabled, additional information related to bidirectional level resolution, the association between characters and glyphs, and glyph position adjustments are added to the internal, parsed representation of the XSL-FO tree and its corresponding formatted area tree. This additional information will somewhat increase the memory requirements for processing documents that use these features.
+
+<note>A document author need not make explicit use of any complex scripts feature in order for this additional information to be created. For example, if the author makes use of a font that contains OpenType GSUB and/or GPOS tables, then those tables will be automatically used unless complex scripts features are disabled.</note>
+
+## Changes to your XSL-FO input files { #source}
+
+In most circumstances, XSL-FO content does not need to change in order to make use of complex scripts features; however, in certain contexts, fully automatic processing is not sufficient. In these cases, an author may make use of the following XSL-FO constructs:
+
+
+- The [script](http://www.w3.org/TR/2006/REC-xsl11-20061205/#script) property.
+
+- The [language](http://www.w3.org/TR/2006/REC-xsl11-20061205/#language) property.
+
+- The [writing-mode](http://www.w3.org/TR/2006/REC-xsl11-20061205/#writing-mode) property.
+
+- The number to string conversion properties: [format](http://www.w3.org/TR/2006/REC-xsl11-20061205/#format), [grouping-separator](http://www.w3.org/TR/2006/REC-xsl11-20061205/#grouping-separator), [grouping-size](http://www.w3.org/TR/2006/REC-xsl11-20061205/#grouping-size), [letter-value](http://www.w3.org/TR/2006/REC-xsl11-20061205/#letter-value), and `fox:number-conversion-features`.
+
+- The [fo:bidi-override](http://www.w3.org/TR/2006/REC-xsl11-20061205/#fo_bidi-override) element.
+
+- Explicit bidirectional control characters: U+200E LRM, U+200F RLM, U+202A LRE, U+202B RLE, U+202C PDF, U+202D LRO, U+202E RLO.
+
+- Explicit join control characters: U+200C ZWNJ and U+200D ZWJ.
+
+## Authoring Details { #details}
+
+The complex scripts related effects of the above enumerated XSL-FO constructs are more fully described in the following sub-sections.
+
+### Script Property { #script_property}
+
+In order to apply font specific complex script features, it is necessary to know the script that applies to the text undergoing layout processing. This script is determined using the following algorithm:
+
+
+1. If the FO element that governs the text specifies a [http://www.w3.org/TR/2006/REC-xsl11-20061205/#script](http://www.w3.org/TR/2006/REC-xsl11-20061205/#script) property and its value is not the empty string or `"auto"`, then that script is used.
+
+1. Otherwise, the dominant script of the text is determined automatically by finding the script whose constituent characters appear most frequently in the text.
+
+In case the automatic algorithm does not produce the desired results, an author may explicitly specify a `script` property with the desired script. If specified, it must be one of the four-letter script code specified in [ISO 15924 Code List](http://unicode.org/iso15924/iso15924-codes.html) or in the [Extended Script Codes](#extended_script_codes) table. Comparison of script codes is performed in a case-insensitive manner, so it does not matter what case is used when specifying these codes in an XSL-FO document.
+
+#### Standard Script Codes { #standard_script_codes}
+
+The following table enumerates the standard ISO 15924 4-letter codes recognized by FOP.
+
+| Code | Script |
+|------|--------|
+|  `arab`  | Arabic |
+|  `beng`  | Bengali |
+|  `bopo`  | Bopomofo |
+|  `cyrl`  | Cyrillic |
+|  `deva`  | Devanagari |
+|  `ethi`  | Ethiopic |
+|  `geor`  | Georgian |
+|  `grek`  | Greek |
+|  `gujr`  | Gujarati |
+|  `guru`  | Gurmukhi |
+|  `hang`  | Hangul |
+|  `hani`  | Han |
+|  `hebr`  | Hebrew |
+|  `hira`  | Hiragana |
+|  `kana`  | Katakana |
+|  `knda`  | Kannada |
+|  `khmr`  | Khmer |
+|  `laoo`  | Lao |
+|  `latn`  | Latin |
+|  `mlym`  | Malayalam |
+|  `mymr`  | Burmese |
+|  `mong`  | Mongolian |
+|  `orya`  | Oriya |
+|  `sinh`  | Sinhalese |
+|  `taml`  | Tamil |
+|  `telu`  | Telugu |
+|  `thai`  | Thai |
+|  `tibt`  | Tibetan |
+|  `zmth`  | Math |
+|  `zsym`  | Symbol |
+|  `zyyy`  | Undetermined |
+|  `zzzz`  | Uncoded |
+
+#### Extended Script Codes { #extended_script_codes}
+
+The following table enumerates a number of non-standard extended script codes recognized by FOP.
+
+| Code | Script | Comments |
+|------|--------|----------|
+|  `bng2`  | Bengali | OpenType Indic Version 2 (May 2008 and following) behavior. |
+|  `dev2`  | Devanagari | OpenType Indic Version 2 (May 2008 and following) behavior. |
+|  `gur2`  | Gurmukhi | OpenType Indic Version 2 (May 2008 and following) behavior. |
+|  `gjr2`  | Gujarati | OpenType Indic Version 2 (May 2008 and following) behavior. |
+|  `knd2`  | Kannada | OpenType Indic Version 2 (May 2008 and following) behavior. |
+|  `mlm2`  | Malayalam | OpenType Indic Version 2 (May 2008 and following) behavior. |
+|  `ory2`  | Oriya | OpenType Indic Version 2 (May 2008 and following) behavior. |
+|  `tml2`  | Tamil | OpenType Indic Version 2 (May 2008 and following) behavior. |
+|  `tel2`  | Telugu | OpenType Indic Version 2 (May 2008 and following) behavior. |
+
+<warning>Explicit use of one of the above extended script codes is not portable, and should be limited to use with FOP only.</warning>
+
+<note>When performing automatic script determination, FOP selects the OpenType Indic Version 2 script codes by default. If the author requires Version 1 behavior, then an explicit, non-extension script code should be specified in a governing `script` property.</note>
+
+### Language Property { #language_property}
+
+Certain fonts that support complex script features can make use of language information in order for language specific processing rules to be applied. For example, a font designed for the Arabic script may support typographic variations according to whether the written language is Arabic, Farsi (Persian), Sindhi, Urdu, or another language written with the Arabic script. In order to apply these language specific features, the author may explicitly mark the text with a [http://www.w3.org/TR/2006/REC-xsl11-20061205/#language](http://www.w3.org/TR/2006/REC-xsl11-20061205/#language) property.
+
+When specifying the `language` property, the value of the property must be either an [ISO639-2 3-letter code](http://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) or an [ISO639-1 2-letter code](http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes). Comparison of language codes is performed in a case-insensitive manner, so it does not matter what case is used when specifying these codes in an XSL-FO document.
+
+### Writing Mode Property { #writing_mode_property}
+
+The `writing-mode` property is used to determine the axes and direction of the inline progression direction, the block progression direction, the column progression direction (in tables and flows), the shift direction, region placement, the resolution of writing-mode relative property values (such as start, end, before, after), and the default block (paragraph) bidirectionality level.
+
+The `writing-mode` property is inherited, so it can appear on any XSL-FO element type; however, it applies (semantically) only to the following element types:
+
+
+-  `fo:page-sequence`
+
+-  `fo:simple-page-master`
+
+-  `fo:region-*`
+
+-  `fo:block-container`
+
+-  `fo:inline-container`
+
+-  `fo:table`
+
+If it is not specified on one of these element types, but is specified on an ancestor element, then the value specified on that ancestor element (the inherited value) is used; otherwise, the initial value `lr-tb` is used.
+
+At present, only the following values of the `writing-mode` property are supported:
+
+
+-  `lr-tb`
+
+-  `rl-tb`
+
+-  `lr`
+
+-  `rl`
+
+Writing modes that employ a vertical inline progression direction are not yet supported.
+
+### Number Conversion Properties { #number_conversion_properties}
+
+### Bidi Override Element { #bidi_override_element}
+
+The [fo:bidi-override](http://www.w3.org/TR/2006/REC-xsl11-20061205/#fo_bidi-override) element may be used to override default bidirectional processing behavior, including default embedding levels and default character directionality. In the absence of either this element or use of explicit [Bidi Control Characters](#bidi_controls), the default behavior prescribed by the [Unicode Bidirectional Algorithm](http://www.w3.org/TR/2006/REC-xsl11-20061205/#fo_bidi-override) applies.
+
+### Bidi Control Characters { #bidi_controls}
+
+In addition to the use of the [Bidi Override Element](#bidi_override_element), an author may make use of the following explicit Unicode Bidi Control Characters:
+
+
+- U+200E - LEFT-TO-RIGHT MARK (LRM)
+
+- U+200F - RIGHT-TO-LEFT MARK (RLM)
+
+- U+202A - LEFT-TO-RIGHT EMBEDDING (LRE)
+
+- U+202B - RIGHT-TO-LEFT EMBEDDING (RLE)
+
+- U+202C - POP DIRECTIONAL FORMATTING (PDF)
+
+- U+202D - LEFT-TO-RIGHT OVERRIDE (LRO)
+
+- U+202E - RIGHT-TO-LEFT OVERRIDE (RLO)
+
+If an embedding or override is not terminated (using U+202C PDF) prior to the end of a [delimited text range](http://www.w3.org/TR/2006/REC-xsl11-20061205/#d0e4879), then it is automatically terminated by FOP.
+
+### Join Control Characters { #join_controls}
+
+In order to prevent joining behavior in contexts where joining occurs by default, for example, between U+0628 ARABIC LETTER BEH and U+0646 ARABIC LETTER NOON, an author may used a U+200C ZERO WIDTH NON-JOINER (ZWNJ).
+
+Conversely, in order to force joining behavior in contexts where joining does not occur by default, for example, between U+0628 ARABIC LETTER BEH and U+0020 SPACE, an author may used a U+200D ZERO WIDTH JOINER (ZWJ).
+
+The behavior of ZWNJ and ZWJ is script specific. See [The Unicode Standard, Chapter 8, Middle Eastern Scripts](http://www.unicode.org/versions/Unicode6.1.0/ch08.pdf) for information on the use of these control characters with the Arabic script. See [The Unicode Standard, Chapter 9, South Asian Scripts - I](http://www.unicode.org/versions/Unicode6.1.0/ch09.pdf) for information on the use of these control characters with common Indic scripts.
+
+## Supported Scripts { #supported_scripts}
+
+Support for specific complex scripts is enumerated in the following table. Support for those marked as not being supported is expected to be added in future revisions.
+
+| Script | Support | Tested | Comments |
+|--------|---------|--------|----------|
+|  [Arabic](http://en.wikipedia.org/wiki/Arabic_alphabet)  | full | full |  |
+|  [Bengali](http://en.wikipedia.org/wiki/Bengali_alphabet)  | none | none |  |
+|  [Burmese](http://en.wikipedia.org/wiki/Burmese_alphabet)  | none | none |  |
+|  [Devanagari](http://en.wikipedia.org/wiki/Devanagari_alphabet)  | partial | partial | join controls (ZWJ, ZWNJ) not yet supported |
+|  [Khmer](http://en.wikipedia.org/wiki/Khmer_alphabet)  | full | full |  |
+|  [Gujarati](http://en.wikipedia.org/wiki/Gujarati_alphabet)  | partial | none | pre-alpha |
+|  [Gurmukhi](http://en.wikipedia.org/wiki/Gurmukhī_alphabet)  | partial | none | pre-alpha |
+|  [Hebrew](http://en.wikipedia.org/wiki/Hebrew_alphabet)  | full | partial |  |
+|  [Kannada](http://en.wikipedia.org/wiki/Kannada_alphabet)  | none | none |  |
+|  [Lao](http://en.wikipedia.org/wiki/Lao_alphabet)  | none | none |  |
+|  [Malayalam](http://en.wikipedia.org/wiki/Malayalam_alphabet)  | none | none |  |
+|  [Mongolian](http://en.wikipedia.org/wiki/Mongolian_script)  | none | none |  |
+|  [Oriya](http://en.wikipedia.org/wiki/Oriya_script)  | none | none |  |
+|  [Tamil](http://en.wikipedia.org/wiki/Tamil_alphabet)  | none | none |  |
+|  [Telugu](http://en.wikipedia.org/wiki/Telugu_alphabet)  | none | none |  |
+|  [Tibetan](http://en.wikipedia.org/wiki/Tibetan_alphabet)  | none | none |  |
+|  [Thai](http://en.wikipedia.org/wiki/Thai_alphabet)  | none | none |  |
+
+## Supported Fonts { #supported_fonts}
+
+Support for specific fonts is enumerated in the following sub-sections. If a given font is not listed, then it has not been tested with these complex scripts features.
+
+### Arabic Fonts { #fonts_arabic}
+
+| Font | Version | Glyphs | Comments |
+|------|---------|--------|----------|
+|  [Arial Unicode MS](http://www.microsoft.com/typography/fonts/family.aspx?FID=24)  |  [1.01](http://www.microsoft.com/typography/fonts/font.aspx?FMID=1081)  | 50377 | limited GPOS support |
+|  [Lateef](http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=ArabicFonts)  | 1.0 | 1147 | language features for Kurdish (KUR), Sindhi (SND), Urdu (URD) |
+|  [Scheherazade](http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=ArabicFonts)  | 1.0 | 1197 | language features for Kurdish (KUR), Sindhi (SND), Urdu (URD) |
+|  [Simplified Arabic](http://www.microsoft.com/typography/fonts/family.aspx?FID=261)  |  [1.01](http://www.microsoft.com/typography/fonts/font.aspx?FMID=867)  |  | contains invalid, out of order coverage table entries |
+|  [Simplified Arabic](http://www.microsoft.com/typography/fonts/font.aspx?FID=261)  |  [5.00](http://www.microsoft.com/typography/fonts/font.aspx?FMID=1645)  | 414 | lacks GPOS support |
+|  [Simplified Arabic](http://www.microsoft.com/typography/fonts/font.aspx?FID=261)  | 5.92 | 473 | includes GPOS for advanced position adjustment |
+|  [Traditional Arabic](http://www.microsoft.com/typography/fonts/family.aspx?FID=264)  |  [1.01](http://www.microsoft.com/typography/fonts/family.aspx?FMID=877)  | 530 | lacks GPOS support |
+|  [Traditional Arabic](http://www.microsoft.com/typography/fonts/font.aspx?FID=264)  |  [5.00](http://www.microsoft.com/typography/fonts/font.aspx?FMID=1658)  | 530 | lacks GPOS support |
+|  [Traditional Arabic](http://www.microsoft.com/typography/fonts/font.aspx?FID=264)  | 5.92 | 589 | includes GPOS for advanced position adjustment |
+
+### Devanagari Fonts { #devanagari_fonts}
+
+| Font | Version | Glyphs | Comments |
+|------|---------|--------|----------|
+|  [Aparajita](http://www.microsoft.com/typography/fonts/family.aspx?FID=370)  |  [1.00](http://www.microsoft.com/typography/fonts/font.aspx?FMID=1700)  | 706 |  |
+|  [Kokila](http://www.microsoft.com/typography/fonts/family.aspx?FID=374)  |  [1.00](http://www.microsoft.com/typography/fonts/font.aspx?FMID=1749)  | 706 |  |
+|  [Mangal](http://www.microsoft.com/typography/fonts/family.aspx?FID=243)  |  [5.01](http://www.microsoft.com/typography/fonts/font.aspx?FMID=1759)  | 885 | designed for use in user interfaces |
+|  [Utsaah](http://www.microsoft.com/typography/fonts/family.aspx?FID=384)  |  [1.00](http://www.microsoft.com/typography/fonts/font.aspx?FMID=1811)  | 706 |  |
+
+## Other Limitations { #limitations}
+
+Complex scripts support in Apache FOP is relatively new, so there are certain limitations. Please help us identify and close any gaps.
+
+
+- Only the PDF output format fully supports complex scripts features at the present time.
+
+- Shaping context does not extend across an element boundary. This limitation prevents the use of `fo:character`, `fo:inline` or `fo:wrapper` in order to colorize individual Arabic letters without affecting shaping behavior across the element boundary.
+
+## Related Links { #links}
+
+In addition to the XSL-FO specification, a number of external resources provide guidance about authoring documents that employ complex scripts and the features described above:
+
+
+-  [The Unicode Standard](http://www.unicode.org/)
+
+-  [Unicode Bidirectional Algorithm](http://www.w3.org/TR/2006/REC-xsl11-20061205/#fo_bidi-override)
+
+-  [OpenType Advanced Typographic Extensions](http://www.microsoft.com/typography/otspec/ttochap1.htm)
+
+-  [Examples of Complex Rendering](http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=CmplxRndExamples)

Propchange: xmlgraphics/site/trunk/content/fop/2.4/complexscripts.mdtext
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: xmlgraphics/site/trunk/content/fop/2.4/complexscripts.mdtext
------------------------------------------------------------------------------
    svn:executable = *

Added: xmlgraphics/site/trunk/content/fop/2.4/configuration.mdtext
URL: http://svn.apache.org/viewvc/xmlgraphics/site/trunk/content/fop/2.4/configuration.mdtext?rev=1869402&view=auto
==============================================================================
--- xmlgraphics/site/trunk/content/fop/2.4/configuration.mdtext (added)
+++ xmlgraphics/site/trunk/content/fop/2.4/configuration.mdtext Tue Nov  5 13:56:40 2019
@@ -0,0 +1,294 @@
+Title: Apache(tm) FOP: Configuration
+
+#Apache&trade; FOP: Configuration
+
+
+## Configuration File Basics { #general}
+
+The Apache&trade; FOP configuration file is an XML file containing a variety of settings that are useful for controlling FOP's behavior, and for helping it find resources that you wish it to use.
+
+The easiest way to get started using a FOP configuration file is to copy the sample found at `{fop-dir}/conf/fop.xconf` to a location of your choice, and then to edit it according to your needs. It contains templates for the various configuration options, most of which are commented out. Remove the comments and change the settings for entries that you wish to use. Be sure to follow any instructions, including comments which specify the value range. Also, since the configuration file is XML, be sure to keep it well-formed.
+
+### Making Configuration Available to FOP { #general-available}
+
+After creating your configuration file, you must tell FOP how to find it:
+
+
+- If running FOP from the command-line, see the "-c" command-line option in [Running FOP](running.html).
+
+- If running FOP as an embedded application, see [Embedding, Using a Configuration File](embedding.html#config-external).
+
+See [Setting the Configuration Programmatically](embedding.html#config-internal) for instructions on how to do so in an embedded environment.
+
+## Summary of the General Configuration Options { #general-elements}
+
+| Element | Data Type (for the value) | Description | Default Value |
+|---------|---------------------------|-------------|---------------|
+| base[^1] | URL or directory | Specifies the base URL based on which relative URL will be resolved. | current directory |
+| font-base[^1] | URL or directory | Specifies the base URL based on which relative font URLs will be resolved. | base URL/directory (above) |
+| hyphenation-base[^1] | URL or directory | Specifies the base URL based on which relative URLs to hyphenation pattern files will be resolved. If not specified, support for user-supplied hyphenation patterns remains disabled. | disabled |
+| hyphenation-pattern | String, attribute lang, attribute country (optional) | Register a file name for the hyphenation pattern for the mentioned language and country. Language ll and country CC must both consist of two letters. | ll_CC |
+| source-resolution | Integer, dpi | Resolution in dpi (dots per inch) which is used internally to determine the pixel size for SVG images and bitmap images without resolution information. | 72 dpi |
+| target-resolution | Integer, dpi | Resolution in dpi (dots per inch) used to specify the output resolution for bitmap images generated by bitmap renderers (such as the TIFF renderer) and by bitmaps generated by Apache Batik for filter effects and such. | 72 dpi |
+| strict-configuration | Boolean (true, false) | Setting this option to 'true' will cause FOP to strictly verify the contents of the FOP configuration file to ensure that defined resources (such as fonts and base URLs/directories) are valid and available to FOP. Any errors found will cause FOP to immediately raise an exception. | false |
+| strict-validation | Boolean (true, false) | Setting this option to 'false' causes FOP to be more forgiving about XSL-FO validity, for example, you're allowed to specify a border on a region-body which is supported by some FO implementations but is non-standard. Note that such a border would currently have no effect in Apache FOP. | true |
+| break-indent-inheritance | Boolean (true, false) | Setting this option to 'true' causes FOP to use an alternative rule set to determine text indents specified through margins, start-indent and end-indent. Many commercial FO implementations have chosen to break the XSL specification in this aspect. This option tries to mimic their behaviour. Please note that Apache FOP may still not behave exactly like those implementations either because FOP has not fully matched the desired behaviour and because the behaviour among the commercial implementations varies. The default for this option (i.e. false) is to behave exactly like the specification describes. | false |
+| complex-scripts | attribute disabled (optional) | If present and if an attribute 'disabled' is specified with the value 'false', then complex script features are disabled. The same result can be obtained on an FOP per-invocation basis by specifying a '-nocs' command line option when invoking FOP. When complex script features are disabled, all bidirectional processing and complex character to glyph mapping processing is disabled; in addition, the loading of GDEF, GSUB, and GPOS advanced typographic tables is disabled for OpenType and TrueType fonts. Unless disabled by this mechanism or by use of the '-nocs' command line option, complex script features will be enabled by default. | n/a |
+| default-page-settings | n/a | Specifies the default width and height of a page if "auto" is specified for either or both values. Use "height" and "width" attributes on the default-page-settings element to specify the two values. | "height" 11 inches, "width" 8.26 inches |
+| use-cache | boolean (true, false) | All fonts information that has been gathered as a result of "directory" or "auto-detect" font configurations will be cached for future rendering runs. This setting should improve performance on systems where fonts have been configured using the "directory" or "auto-detect" tag mechanisms. By default this option is switched on. | true |
+| cache-file | String | This option specifies the file/directory path of the fop cache file. This file is currently only used to cache font triplet information for future reference. | ${base}/conf/fop.cache |
+| renderers | (see text below) | Contains the configuration for each renderer. See below. | N/A |
+
+[^1]: Relative URIs for those properties are evaluated relative to the base URI of the configuration file. If the configuration is provided programmatically, the base URI can be set with `FopFactory.setUserConfigBaseURI` ; default is the current working directory.
+
+
+This is an excerpt from the example configuration file coming with FOP:
+
+    :::xml
+    <fop version="1.0">
+
+      <!-- Strict user configuration -->
+      <strict-configuration>true</strict-configuration>
+
+      <!-- Strict FO validation -->
+      <strict-validation>true</strict-validation>
+
+      <!-- Base URL for resolving relative URLs -->
+      <base>./</base>
+
+      <!-- Font Base URL for resolving relative font URLs -->
+      <font-base>./</font-base>
+
+      <!-- Source resolution in dpi (dots/pixels per inch) for determining the size of pixels in SVG and bitmap images, default: 72dpi -->
+      <source-resolution>72</source-resolution>
+      <!-- Target resolution in dpi (dots/pixels per inch) for specifying the target resolution for generated bitmaps, default: 72dpi -->
+      <target-resolution>72</target-resolution>
+
+      <!-- default page-height and page-width, in case
+           value is specified as auto -->
+      <default-page-settings height="11in" width="8.26in"/>
+
+      <!-- Use file name nl_Bel instead of the default nl_BE -->
+      <hyphenation-pattern lang="nl" country="BE">nl_Bel</hyphenation-pattern>
+      <!-- or for xml file -->
+      <hyphenation-pattern lang="fr" extension="xml">lang/fr.xml</hyphenation-pattern>
+      <!-- or for binary file -->
+      <hyphenation-pattern lang="fr" extension="hyp">lang/fr.hyp</hyphenation-pattern>
+
+      <!-- etc. etc..... -->
+    </fop>
+
+## Image Loading Customization { #image-loading}
+
+Apache FOP uses the image loading framework from [Apache XML Graphics Commons](http://xmlgraphics.apache.org/commons/) to load images using various plug-ins. Every image loader plug-in has a hard-coded usage penalty that influences which solution is chosen if there are multiple possibilities to load an image. Sometimes, though, these penalties need to be tweaked and this can be done in the FOP configuration. An example:
+
+    :::xml
+    <fop version="1.0">
+      [..]
+      <image-loading>
+        <penalty value="10000"
+          class="org.apache.xmlgraphics.image.loader.impl.ImageLoaderRawCCITTFax"/>
+        <penalty value="INFINITE"
+          class="org.apache.xmlgraphics.image.loader.impl.ImageLoaderInternalTIFF"/>
+      </image-loading>
+      <renderers....
+    </fop>
+
+The first penalty element increases the penalty for the raw CCITT loader. This practically forces the decoding of CCITT compressed TIFF images except if there are no TIFF codecs available.
+
+The second penalty element sets an "infinite" penalty for the TIFF loader using the internal TIFF codec. This practically disables that plug-in as it will never be chosen as a possible solution.
+
+Negative penalties are possible to promote a plug-in but a negative penalty sum will be treated as zero penalty in most cases. For more details on the image loading framework, please consult the documentation there.
+
+The ImageLoaderPNG and ImageLoaderRawPNG have a hard-coded penalty of 1000 and as such the ImageLoaderImageIO image loader will be selected by default when loading PNGs unless the latter is disabled by awarding a INFINITE penalty to it, or one of the former two is promoted by awarding a strong negative penalty (say, -10000) to it.
+
+    :::xml
+    <fop version="1.0">
+      [..]
+      <image-loading>
+        <penalty value="-10000"
+            class="org.apache.xmlgraphics.image.loader.impl.ImageLoaderRawPNG"/>
+        <penalty value="INFINITE"
+            class="org.apache.xmlgraphics.image.loader.impl.ImageLoaderPNG"/>
+        <penalty value="INFINITE"
+            class="org.apache.xmlgraphics.image.loader.impl.imageio.ImageLoaderImageIO"/>
+      </image-loading>
+      <renderers....
+    </fop>
+
+## Renderer configuration { #renderers}
+
+Each Renderer has its own configuration section which is identified by the MIME type the Renderer is written for, ex. "application/pdf" for the PDF Renderer.
+
+The configuration for the PDF Renderer could look like this:
+
+    :::xml
+    <renderers>
+      <renderer mime="application/pdf">
+        <filterList>
+          <!-- provides compression using zlib flate (default is on) -->
+          <value>flate</value>
+        </filterList>
+        <fonts>
+          <font metrics-url="arial.xml" kerning="yes" embed-url="arial.ttf">
+            <font-triplet name="Arial" style="normal" weight="normal"/>
+            <font-triplet name="ArialMT" style="normal" weight="normal"/>
+          </font>
+          <font metrics-url="arialb.xml" kerning="yes" embed-url="arialb.ttf">
+            <font-triplet name="Arial" style="normal" weight="bold"/>
+            <font-triplet name="ArialMT" style="normal" weight="bold"/>
+          </font>
+        </fonts>
+      </renderer>
+
+      <renderer mime="application/postscript">
+      <!-- etc. etc..... -->
+
+The details on the font configuration can be found on the separate [Fonts](fonts.html) page. Note especially the section entitled [Register Fonts with FOP](fonts.html#register).
+
+### Special Settings for the PDF Renderer { #pdf-renderer}
+
+The configuration element for the PDF renderer contains two elements. One is for the font configuration (please follow the link above) and one is for the "filter list". The filter list controls how the individual objects in a PDF file are encoded. By default, all objects get "flate" encoded (i.e. simply compressed with the same algorithm that is also used in ZIP files). Most users don't need to change that setting. For debugging purposes, it may be desired not to compress the internal objects at all so the generated PDF commands can be read. In that case, you can simply use the following filter list. The second filter list (type="image") ensures that all images still get compressed but also ASCII-85 encoded so the produced PDF file is still easily readable in a text editor.
+
+    :::xml
+    <renderer mime="application/pdf">
+      <filterList>
+        <value>null</value>
+      </filterList>
+      <filterList type="image">
+        <value>flate</value>
+        <value>ascii-85</value>
+      </filterList>
+
+      <fonts....
+    </renderer>
+
+Another (optional) setting specific to the PDF Renderer is an output color profile, an ICC color profile which indicates the target color space the PDF file is generated for. This setting is mainly used in conjunction with the [PDF/X](pdfx.html) feature. An example:
+
+    :::xml
+    <renderer mime="application/pdf">
+      <filterList...
+
+      <output-profile>C:\FOP\Color\EuropeISOCoatedFOGRA27.icc</output-profile>
+
+      <fonts....
+    </renderer>
+
+Some people don't have high requirements on color fidelity but instead want the smallest PDF file sizes possible. In this case it's possible to disable the default sRGB color space which XSL-FO requires. This will cause RGB colors to be generated as device-specific RGB. Please note that this option is unavailable (and will cause an error) if you enable PDF/A or PDF/X functionality or if you specify an output profile. This setting will make the PDF about 4KB smaller. To disable the sRGB color space add the following setting:
+
+    :::xml
+    <renderer mime="application/pdf">
+      <filterList...
+
+      <disable-srgb-colorspace>true</disable-srgb-colorspace>
+
+      <fonts....
+    </renderer>
+
+FOP supports encryption of PDF output, thanks to Patrick C. Lankswert. This feature is commonly used to prevent unauthorized viewing, printing, editing, copying text from the document and doing annotations. It is also possible to ask the user for a password in order to view the contents. Note that there already exist third party applications which can decrypt an encrypted PDF without effort and allow the aforementioned operations, therefore the degree of protection is limited. For further information about features and restrictions regarding PDF encryption, look at the documentation coming with Adobe Acrobat or the technical documentation on the Adobe web site.
+
+    :::xml
+    <renderer mime="application/pdf">
+      <encryption-params>
+         <encryption-length>128</encryption-length>
+         <user-password>testuserpass</user-password>
+         <owner-password>testownerpass</owner-password>
+         <noprint/>
+         <nocopy/>
+         <noedit/>
+         <noannotations/>
+         <nofillinforms/>
+         <noaccesscontent/>
+         <noassembledoc/>
+         <noprinthq/>
+      </encryption-params>
+    </renderer>
+
+By default FOP produces PDF files of version 1.4, but this can be changed in order to benefit from features that appeared in newer versions of PDF. At the moment, only a few features from PDF 1.5 have been implemented, but the configuration element will accept any value between 1.4 and 1.7. This is the value that will appear in the PDF header, although only features up to 1.5 will actually be used.
+
+    :::xml
+    <renderer mime="application/pdf">
+      <version>1.5</version>
+      <!-- Versions 1.4, 1.5, 1.6 and 1.7 are accepted, all other values are invalid -->
+    </renderer>
+
+### Special Settings for the PostScript Renderer { #ps-renderer}
+
+Besides the normal font configuration (the same "fonts" element as for the PDF renderer) the PostScript renderer has an additional setting to force landscape pages to be rotated to fit on a page inserted into the printer in portrait mode. Set the value to "true" to activate this feature. The default is "false". Example:
+
+    :::xml
+    <renderer mime="application/postscript">
+      <auto-rotate-landscape>true</auto-rotate-landscape>
+
+      <fonts>
+        <font metrics-url="arial.xml" kerning="yes" embed-url="arial.ttf">
+          <font-triplet name="Arial" style="normal" weight="normal"/>
+          <font-triplet name="ArialMT" style="normal" weight="normal"/>
+        </font>
+        <font metrics-url="arialb.xml" kerning="yes" embed-url="arialb.ttf">
+          <font-triplet name="Arial" style="normal" weight="bold"/>
+          <font-triplet name="ArialMT" style="normal" weight="bold"/>
+        </font>
+      </fonts>
+    </renderer>
+
+### Special Settings for the PCL Renderer { #pcl-renderer}
+
+Non-standard fonts for the PCL renderer are made available through the Java2D subsystem which means that you don't have to do any custom font configuration in this case but you have to use the font names offered by Java.
+
+Additionally, there are certain settings that control how the renderer handles various elements.
+
+    :::xml
+    <renderer mime="application/x-pcl">
+      <rendering>quality</rendering>
+      <text-rendering>bitmap</text-rendering>
+    </renderer>
+
+The default value for the "rendering" setting is "speed" which causes borders to be painted as plain rectangles. In this mode, no special borders (dotted, dashed etc.) are available. If you want support for all border modes, set the value to "quality" as indicated above. This will cause the borders to be painted as bitmaps.
+
+The default value for the "text-rendering" setting is "auto" which paints the base fonts using PCL fonts. Non-base fonts are painted as bitmaps through Java2D. If the mix of painting methods results in unwelcome output, you can set this to "bitmap" which causes all text to be rendered as bitmaps.
+
+### Special Settings for the AFP Renderer { #afp-renderer}
+
+
+
+Additionally, there are certain settings that control how the renderer handles various elements.
+
+    :::xml
+    <renderer mime="application/x-afp">
+      <images mode="b+w" bits-per-pixel="8" native="true"/>
+      <renderer-resolution>240</renderer-resolution>
+      <line-width-correction>2.5</line-width-correction>
+
+      <!-- a default external resource group file -->
+      <resource-group-file>resources.afp</resource-group-file>
+    </renderer>
+
+The default value for the images "mode" setting is "b+w" (black and white). When the images "mode" setting is "b+w" a "bits-per-pixel" setting can be provided to aid the grayscale conversion process. With this setting all images referenced in your source document are converted to an IOCA FS45 grayscale bitmap image form. When the setting is "color" all images are converted to an IOCA FS45 color bitmap image form. When "native" setting is "true", all images encountered (TIFF, GIF, JPEG and Encapsulated Postscript etc.) will be embedded directly in the datastream in their native form using a MO:DCA Object Container.
+
+The default value for the "renderer-resolution" is 240 dpi.
+
+The default line width is device dependent and may need to be fine tuned so that the output matches the expected result. The default correction value is 2.5.
+
+By default if there is no configuration definition for "resource-group-file", external resources will be placed in a file called resources.afp.
+
+## When it does not work { #When-it-does-not-work}
+
+FOP searches the configuration file for the information it expects, at the position it expects. When that information is not present, FOP will not complain, it will just continue. When there is other information in the file, FOP will not complain, it will just ignore it. That means that when your configuration information is in the file but in a different XML element, or in a different XML path, than FOP expects, it will be silently ignored.
+
+Check the following possibilities:
+
+
+- The format of the configuration file has changed considerably between FOP 0.20.5 and FOP 1.0 and its beta versions. Did you convert your file to the new format?
+
+- The FOP distribution contains a schema for configuration files, at src/foschema/fop-configuration.xsd. Did you validate your configuration file against it? Add the following schema location to the `schema` element:
+
+    :::xml
+    <fop
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:noNamespaceSchemaLocation=
+        "http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/fop/src/foschema/fop-configuration.xsd?view=co">
+
+and run the configuration file through a validating schema parser. Note that the schema cannot detect all errors, and that it is stricter about the order of some elements than FOP itself is.
+
+- Run FOP in debug mode (command line option `-d`). This makes FOP report which configuration information it finds. Check if FOP finds what you expect.

Propchange: xmlgraphics/site/trunk/content/fop/2.4/configuration.mdtext
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: xmlgraphics/site/trunk/content/fop/2.4/configuration.mdtext
------------------------------------------------------------------------------
    svn:executable = *



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


Mime
View raw message