- Home
- Version 1.0
- Version 1.1
- FOP Trunk
- Development

The Apache Software Foundation > Apache XML Graphics Project
XML
PDF
Font size:

# History of Changes 1.1

- Introduction and explanation of symbols
- Version 1.1 (20 October 2012)
  - Changes to the Code Base
  - Changes to the User Configuration
  - Changes to Documentation
  - Changes to the Font Subsystem
  - Changes to the Image Support
  - Changes to the Layout Engine
  - Changes to Renderers (Output Formats)
  - Changes to unit tests or other test code
  - Contributors to this release

## Introduction and explanation of symbols

Changes are sorted by "type" and then chronologically with the most recent at the top. These symbols denote the various action types:=add, =fix, =remove, =update

## Version 1.1 (20 October 2012)

### Changes to the Code Base

- Added support for the role property on fo:page-sequence, fo:flow and fo:static-content. This allows to change the mapping of those FOs to PDF structure types when enabling accessibility. Committed by VH.
- A global setting to wrap F11 images in page segments. Committed by PH. See Issue 49893.
- Added support for PDF Object Streams. When accessibility is enabled and PDF version 1.5 selected, the structure tree will be stored in object streams in order to reduce the size of the final PDF. Committed by VH. Thanks to Peter Hancock.
- Improved support for empty flow-name mapping. Committed by PH. See Issue 50391.
- Improvements of the Accessibility features. Committed by PH. Thanks to Vincent Hennebert.
- Suppress unnecessary "font not found warnings" when generating AFP with raster fonts Committed by CB. Thanks to Luis Bernardo. See Issue 52416.
- SVG text in AFP creates miscoded GOCA text Committed by CB. Thanks to Luis Bernardo. See Issue 51209.
- Add support for different flow-name of fo:region-body in FOP Committed by CB. Thanks to Peter Hancock. See Issue 50391.
- Tagged PDF performance improvement plus tests Committed by CB. Thanks to Mehdi Houshmand. See Issue 51664.
- Improved AdobeStandardEncoding support in AFM files for type1 fonts Committed by MH. See Issue 52197.
- Added ant script to get JaCoCo code coverage. Committed by VH. Thanks to Mehdi Houshmand. See Issue 52151.
- Added to build file JUnit target that uses a regex to run all of the test cases. This reduces the risk that some of them are omitted when building FOP. Committed by VH. Thanks to Mehdi Houshmand. See Issue 52136.
- Allow JPEG images to be embedded in an AFP document as is, without being decoded and encoded. Committed by PH. Thanks to Mehdi Houshmand. See Issue 52089.
- Simplification of the build: Reduced code duplication and layout engine tests. Committed by PH. Thanks to Mehdi Houshmand. See Issue 52010.
- Fix for when the last simple-page-master referenced in a page-sequence-master is not chosen when force-page-count=odd. Committed by PH. Thanks to Mehdi Houshmand. See Issue 51962.
- Upgraded all tests to JUnit 4. Committed by VH. Thanks to Mehdi Houshmand. See Issue 51928.
- Added support for resolution of relative URIs against a specified xml:base during property refinement. Committed by AD. See Issue 48334.
- Fix incorrect language and country code key generation in hyphenation tree cache. Committed by GA. Thanks to Dieter von Holten. See Issue 53458.
- Eliminate javadocs warnings. Committed by GA.
- Eliminate incorrect use of object identity which produces excessive property cache collisions. Committed by GA. Thanks to Alexios Giotis. See Issue 53412.
- Eliminate javadocs warnings. Committed by GA.
- Use new double format utility to improve thread safety and performance. Committed by GA. Thanks to Ognjen Blagojevic. See Issue 43940.
- Convert block container overflow exception to event model, improving overflow property behavior. Committed by GA. Thanks to Luis Bernardo. See Issue 53094.
- Update to use of checkstyle-5.5 as default configuration. Remove checkstyle-4.0 configuration. Also, import environment build properties before local properties, so that latter can refer to former. Committed by GA. See Issue 53083.
- Prevent NPE on use of unsupported collapse-with-precedence; fall back to collapse. Fix checkstyle errors from prior commit. Committed by GA. Thanks to Pascal Sancho. See Issue 52572.
- Invoke JVM in headless mode from FOP command scripts and JS shell to prevent stealing focus from GUI applications. Committed by GA. See Issue 50062.
- Support list-block in marker, thus preventing NPE. Committed by GA. See Issue 52763.
- Must use unqualified (local name) when reporting invalid child error. Committed by GA.
- Restore lookup on Event message lookup field part. Add locale field to Event to enable locale dependent deferred bundle load during lookup field part substitution. Committed by GA. See Issue 53065.
- Bug in AFP font metrics that performed integer arithmetic when it should have been double arithemetic. Committed by MH.
- Bring clone() in line with the recommendations in Object.clone(). Committed by GA. Thanks to Simon Pepping. See Issue 49754.
- How to use native text with EPSDocumentGraphics2D. Committed by GA. Thanks to Luis Bernardo. See Issue 52966.
- Allow https scheme URI for PDF external action target. Committed by GA. Thanks to Paul Huemer. See Issue 51599.
- RTF percentage table column width not calculated from table. Committed by GA. Thanks to Carsten Pfeiffer. See Issue 50901.
- RTF generates unexpected lines for blocks in tables. Also fix three findbugs issues. Committed by GA. Thanks to Max Aster. See Issue 51009.
- RTF tables do not support percent column-widths. Committed by GA. Thanks to Max Aster. See Issue 51007.
- Access denied (java.util.PropertyPermission org.apache.fop.fo.properties.use-cache read). Committed by GA. Thanks to Armin Haaf. See Issue 50435.
- Incorrect message when encountering a block in an inline in a footnote. Committed by GA. Thanks to Adrian Buza. See Issue 49763.
- Specified rule-thickness applies only when leader-pattern is rule, otherwise should use default thickness. Committed by GA. Thanks to Georg Datterl. See Issue 47380.
- Eliminate duplicate code. Committed by GA. Thanks to Julien Aymé. See Issue 49302.
- Correct coding error in AFPResourceLevel#equals. Committed by GA. Thanks to Julien Aymé. See Issue 49350.
- Throw IFException instead of NPE if navigation target (page reference) doesn't exist. Committed by GA. Thanks to Melanie Drake. See Issue 51836.
- Fixed memory waste in traits map. Committed by GA. Thanks to Sergey Vladimirov. See Issue 51808.
- Fixed small memory waste in rowCells array construction. Committed by GA. Thanks to Sergey Vladimirov. See Issue 51807.
- Fixed incorrect rejection of fo:wrapper inside fo:inline inside fo:footnote-body. Committed by GA. Thanks to Alberto Simões. See Issue 53005.
- Fixed deadlock in PropertyCache. Committed by VH. Thanks to Alexios Giotis. See Issue 46962.
- Fixed bug that caused a configured and installed SVG font to be stroked, also added an event indicating when fonts are stroked. Committed by MH. Thanks to Luis Bernardo. See Issue 52849.
- Fix of a bug introduced when merging ImproveAccessibility. Committed by PH.
- Fixed rendering of special glyphs when using single-byte encoding mode. Committed by VH. Thanks to Luis Bernardo. See Issue 52655.
- Fixed regression introduced by Bugzilla 50593: bookmarks pointing to a non-existing internal destination should just trigger a warning. Committed by AD. See Issue 50593.
- Fix for issue in RenderPagesModel.checkPreparedPages() where the same page-sequence is potentially started multiple times. Committed by AD. Thanks to Martin Koegler. See Issue 50635.
- Fix for performance issue when adding pages, if the total number of pages is significantly large. Committed by AD. Thanks to Martin Koegler. See Issue 50636.
- Fix for performance issue when adding nodes, if the number of children is significantly large. Committed by AD. Thanks to Martin Koegler. See Issue 50626.
- Fix for avoid ArrayIndexOutOfBoundsException for codepoints without a linebreak class Committed by AD. See Issue 50471.
- Replaced magic numbers with constants from UnitConv and GraphicsConstants. Committed by VH. Thanks to Joshua Marquart. See Issue 49695.
- Update xmlgraphics common jar to reflect recent fixes in XGC. Committed by GA. See Issue 53055.
- Fix handling of NaN, {+,-}Infinity, and other edge cases. Submitted by Julien Aymé. Committed by GA. Thanks to Julien Aymé. See Issue 43940.
- Improve property function argument parsing, specifically, better separate required, optional, and variable arguments and the handling of optional argument defaults. Regularize property function class names. Committed by GA.
- Add run target for embedded examples. Add increased JVM memory heap flag for example8 in case font cache is rebuilt. Committed by GA. See Issue 51617.

### Changes to the User Configuration

- Added configuration option to set the version of the output PDF document. Committed by VH. Thanks to Mehdi Houshmand. See Issue 51385.
- Fix crash on use of version switch (-v). Committed by GA. Thanks to Luis Bernardo. See Issue 52144.
- Fix exception thrown from use of -print option in CLI. Committed by GA. Thanks to Luis Bernardo. See Issue 53248.
- Fix for relative URIs in the configuration file (base, font-base, hyphenation-base) are evaluated relative to the base URI of the configuration file. Committed by SP.

### Changes to Documentation

- Fix renderer mime type for PCL output; should be application/x-pcl. Committed by GA. See Issue 53247.
- Update FAQ and New Bug documentation. Committed by GA.

### Changes to the Font Subsystem

- Add support for OpenType advanced typographic tables (GDEF, GSUB, GPOS). Committed by GA.
- Added support for lookup of alternative glyphs when additional single-byte encodings are used, ex. replacing "Omegagreek" by "Omega" and vice versa. Committed by JM. Thanks to Alexandros Papadakis. See Issue 50699.
- Added convenience support for the flushing of the Fop font cache file from the command line. Committed by AC.
- Fix performance regression in JDK 1.6 Update 19 due to use of Java Beans API. Fix checkstyle errors. Committed by GA. Thanks to Tassos Charoulis. See Issue 53148.
- Ensure fonts are not loaded twice (redundantly). Committed by GA. See Issue 53143.
- Bugfix for color model in IOCA IDE structure parameter for 4- and 8-bit grayscale images. Revision 4. Committed by PH. See Issue 48696.
- Changes the way PostScript handles Graphics2D images such that if the language is set to level 3, the image is stored as an embedded file which has no length limit. Previously it was stored as an array which has a implementation limit of 65535 elements. Committed by PH. Thanks to Mehdi Houshmand. See Issue 51760.
- PDFFactory responsible for asdigning name to a subset font. Committed by PH. Thanks to Mehdi Houshmand. See Issue 51759.
- Improved support for EBCDIC encoded double byte fonts fo AFP. Committed by PH. Thanks to Mehdi Houshmand. See Issue 51530.
- Corrected typographical errors in AFPBase12FontCollection. Committed by PH. Thanks to Mehdi Houshmand. See Issue 51205.
- Fixed a bug in TTF subsetting where a composite glyph could get remapped more than once resulting in garbled character. Committed by JM. Thanks to Mehdi Houshmand. See Issue 51596.
- Fixed a number of bugs concerning Type 1 and other single-byte fonts (glyph width mismatches and overlapping characters). Committed by JM. See Issue 50605.
- Removed invalid entries in ToUnicode table of CID subset fonts. Committed by JM. Thanks to Mehdi Houshmand. See Issue 51144.
- Reinstated support for being able to specify a font cache filepath in the fop user configuration. Committed by AC.
- Removing experimental feature that violates XSL-FO and Unicode semantics by misinterpreting Basic Latin code points. Users must use private use codepoints to access font specific character mappings that have no assigned Unicode code point. See bug 50492. Committed by GA.

### Changes to the Image Support

- Fix incorrect SVG line dash pattern with PDF output format. Committed by GA. Thanks to Luis Bernardo. See Issue 53431.
- Support use of ImageLoaderRawPNG decoder in order to prevent re-encoding of PNG images (and unnecssary output file bloat). Committed by GA. Thanks to Luis Bernardo, Matthias Reischenbacher. See Issue 40676.
- Fix interoperability issue with Adobe reader regarding use of multiple filters. Committed by GA. Thanks to Luis Bernardo. See Issue 40676.
- Update site documentation about PNG image loading configuration and support. Committed by GA. Thanks to Luis Bernardo. See Issue 40676.
- Fix newly introduced findbugs warnings. Committed by GA. Thanks to Luis Bernardo. See Issue 40676.

### Changes to the Layout Engine

- Add support for complex scripts, including: full bidi support, support for advanced typographic tables, advanced support for number conversion. Committed by GA. See Issue 32789, 49008, 49687.
- Unify date formatting between FOP and XGC as well as tidying the date format code. Committed by GA. Thanks to Robert Meyer. See Issue 53185.
- Fix for break before (break-before) not respected on blocks nested in inlines. Committed by GA. Thanks to Luis Bernardo. See Issue 45715.
- Don't restart layout unless abs(ipd difference) > 1 in order to prevent rounding issues from triggering false restart. Committed by GA. Thanks to Pascal Sancho. See Issue 51043.
- Ensure that table cell spanning works in right-to-left writing mode. Committed by GA. Thanks to Matthias Reischenbacher. See Issue 53103.
- Ensure that table footer and header are included in bididirectional resolution. Committed by GA. See Issue 53086.
- Ensure writing-mode specified on fo:table is used to determine writing mode of table and its descendants. Committed by GA. See Issue 53097.
- Ensure square image is appropriately scaled. Committed by GA. Thanks to Luis Bernardo. See Issue 52514.
- Bugzilla 50965: Fixed a regression in BlockContainerLayoutManager where margins were no longer reset after forced breaks. Committed by AD. Thanks to Martin Koegler. See Issue 50965.
- Implemented non-standard behavior for basic-link areas, such that they take into account the heights of their descendants areas. Committed by VH.
- Fix for keep-together does not apply to fo:table-cell. Committed by VH.
- Fix for keep-together on a table containing row-spanning cells that was not honored. Committed by VH.
- Fix forpadding-start ignored when table-header/footer is repeated. Committed by VH. Thanks to Matthias Reischenbacher. See Issue 50196.
- Fix for correct behavior of keep-together.within-line in case there are nested inlines Committed by AD. See Issue 49848.
- Fix for avoid ClassCastException when using fox:widow-content-limit Committed by AD. See Issue 48380.
- Fix for content after forced break in block-container is not rendered. Committed by VH. See Issue 50089.
- Fixed adjustment of inline parent area for justified text containing a forward page reference. Committed by JM. See Issue 42034.
- Fixed behavior when combining hyphenation with preserved linefeeds or whitespace. Committed by AD. See Issue 38264.
- Fixed retrieval of available BPD for cases spanning columns and multiple pages with differing page masters. Committed by JM. See Issue 49885.

### Changes to Renderers (Output Formats)

- Added possibility to embed TrueType fonts in PostScript. Committed by VH. See Issue 52338.
- Various bugfixes to make PDFDocumentGraphics2D operational again. Committed by JM.
- Added support for 128bit encryption in PDF output. Committed by VH. Thanks to Michael Rubin.
- Added an IFDocumentHandler filter for triggering rendering events. Created an Event that captures an end page event with the page number. Committed by PH.
- Added option to place AFP NOPs right before the end of a named page group (page-sequence), rather than after the start. Committed by JM.
- Added option for PostScript output to optimize for file size rather than quality. Committed by JM.
- AFP GOCA: Added option to disable GOCA and to control text painting inside GOCA graphics. Committed by JM.
- Added id element to intermediate format to track the origin of content. Committed by VH.
- Added support for CIE Lab colors (from XSL-FO 2.0 WD). Committed by JM.
- Initial work on spot colors (aka named colors) for PDF output. Committed by JM. Thanks to Patrick Jaromin. See Issue 49403.
- Allow afp:no-operation to also appear under fo:page-sequence and fo:declarations. Committed by JM.
- Added some support for break-before/-after for RTF output. Committed by JM. Thanks to Max Aster. See Issue 42600.
- Added ability to embed an external AFP page segment resource file (AFP output only). Committed by JM. Thanks to Peter Hancock. See Issue 49379.
- Added support for PDF File Attachments (Embedded Files). Committed by JM. Thanks to Andrejus Chaliapinas. See Issue 44460.
- Add version attribute to AT and IF intermediate formats. Also eliminate redundant use of reversed attribute in AT format. Committed by GA. See Issue 53304, 53306.
- Add extension to place code just before PostScript %PageTrailer. Committed by GA. Thanks to Luis Bernardo. See Issue 53295.
- Fix invalid PostScript file being created when font-size is 0. Committed by GA. Thanks to Robert Meyer. See Issue 53294.
- Stop outputting the Type entry for structure elements in order to create a smaller PDF ouptut when accessibility is enabled. Committed by VH. Thanks to Martin Koegler.
- Support fractional line widths in AFP renderer, fixing problem with SVG line drawing. Committed by GA. Thanks to Luis Bernardo. See Issue 53242.
- Fix for invalid PDF for certain numerical values in SVG lineargradient. Committed by GA. Thanks to Luis Bernardo. See Issue 40699.
- Fix for XGC when rendering PostScript using SVG being drawn upside down when using a custom affine transform. Committed by GA. Thanks to Robert Meyer. See Issue 48723.
- Don't write final /sect suffix in RTF if section is last section. Committed by GA. Thanks to Benjamin Riefenstahl. See Issue 51484.
- Take leading derived space before/after into account when computing rows for TXT renderer. Committed by GA. See Issue 52114.
- Improved fix of a bug relating to PCL painter thread safetly. Previous fix in rev 895012 worked by synchronizing methods of a static instance of Java2DFontMetrics. This fix uses a unique instance for per thread. Committed by PH. See Issue 48062.
- Fixed a bug in AFP where an ArrayOutofBoundsException is throwqn when embedding a Page Segment. Committed by PH.
- Fixed a bug in AFP where the object area axes of an Include Object was incorrectly set when rotated by 180. Committed by PH.
- Fixed a multi-threading bug for SVG images included through svg:image inside SVG documents. Committed by JM.
- Fix for alternative text not working in tagged PDF for TIFF images. Committed by VH.
- Fixed io exception in MODCAParser caused by the improper use of mark() and reset() on the MODCA data input stream. Added unit test. Committed by PH. See Issue 50909.
- Fixed mapping of font weights between CSS values and TextAttribute.WEIGHT_*. Committed by JM. Thanks to Glenn Adams. See Issue 50899.
- AFP GOCA: fonts were not embedded from within AFPGraphics2D. Committed by JM.
- AFP GOCA: Changed the way FOP fonts are selected based on Batik's GVT fonts to match the behaviour of PDF/PS output. Committed by JM.
- AFP GOCA: Work-around for InfoPrint's AFP implementation which seems to lose the character set state over Graphics Data (GAD) boundaries. Committed by JM.
- Bugfix for AFP GOCA segments: they were not properly marked as appended which could lead to graphics state changes in some implementations. Committed by JM.
- Bugzilla 51010: Bookmarks create useless lines in RTF Committed by CB. Thanks to Max Aster. See Issue 51010.
- Bugzilla 51008: page-number-citation-last does not work in RTF Committed by CB. Thanks to Max Aster. See Issue 51008.
- Bugzilla 50988: Fixed a NullPointerException in case a white-space fo:character was removed due to white-space handling. Committed by AD. Thanks to Matthias Reischenbacher. See Issue 50987.
- Bugzilla 50987: Fixed an issue in PDF output where a link was added to the parent tree instead of the related structure element. Committed by AD. Thanks to Martin Koegler. See Issue 50987.
- Bugzilla 50986: Fixed an issue where invalid PDF page content was generated due to incorrect ET/EMC sequences. Committed by AD. Thanks to Martin Koegler. See Issue 50986.
- Increased maximum possible PDF size from 2GB to around 9GB (hard maximum imposed by the PDF specification). Committed by JM.
- Fix to preserve the order of AFP TLEs and NOPs as given in the XSL-FO document. Committed by JM. Thanks to Mehdi Houshmand. See Issue 50705.
- Fixed a multi-threading issue when rendering SVG. Committed by JM. Thanks to Alexios Giotis. See Issue 46360.
- Removed old Renderer implementations for those output formats that have a version based on the new DocumentHandler architecture available (AFP, PCL, PDF, PS). Committed by VH.

### Changes to unit tests or other test code

- Fix errors and warnings in example files. Add build.xml for documentation examples. Committed by GA.
- Add test for basic-link with padding. Committed by GA. Thanks to Matthias Reischenbacher. See Issue 50196.

### Contributors to this release

We thank the following people for their contributions to this release.

This is a list of all people who participated as committers:
Adrian Cumiskey (AC), Andreas Delmelle (AD), Chris Bowditch (CB), Glenn Adams (GA), Jeremias Märki (JM), Mehdi Houshmand (MH), Peter Hancock (PH), Simon Pepping (SP), Vincent Hennebert (VH).

This is a list of other contributors:
Adrian Buza, Alberto Simões, Alexandros Papadakis, Alexios Giotis, Andrejus Chaliapinas, Armin Haaf, Benjamin Riefenstahl, Carsten Pfeiffer, Dieter von Holten, Georg Datterl, Glenn Adams, Joshua Marquart, Julien Aymé, Luis Bernardo, Luis Bernardo, Matthias Reischenbacher, Martin Koegler, Matthias Reischenbacher, Max Aster, Mehdi Houshmand, Melanie Drake, Michael Rubin, Ognjen Blagojevic, Pascal Sancho, Patrick Jaromin, Paul Huemer, Peter Hancock, Robert Meyer, Sergey Vladimirov, Simon Pepping, Tassos Charoulis, Vincent Hennebert.