# History of Changes 1.1

# 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

- add

  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.

- add

  A global setting to wrap F11 images in page segments. Committed by PH. See Issue 49893.

- add

  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.

- add

  Improved support for empty flow-name mapping. Committed by PH. See Issue 50391.

- add

  Improvements of the Accessibility features. Committed by PH. Thanks to Vincent Hennebert.

- add

  Suppress unnecessary "font not found warnings" when generating AFP with raster fonts Committed by CB. Thanks to Luis Bernardo. See Issue 52416.

- add

  SVG text in AFP creates miscoded GOCA text Committed by CB. Thanks to Luis Bernardo. See Issue 51209.

- add

  Add support for different flow-name of fo:region-body in FOP Committed by CB. Thanks to Peter Hancock. See Issue 50391.

- add

  Tagged PDF performance improvement plus tests Committed by CB. Thanks to Mehdi Houshmand. See Issue 51664.

- add

  Improved AdobeStandardEncoding support in AFM files for type1 fonts Committed by MH. See Issue 52197.

- add

  Added ant script to get JaCoCo code coverage. Committed by VH. Thanks to Mehdi Houshmand. See Issue 52151.

- add

  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.

- add

  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.

- add

  Simplification of the build: Reduced code duplication and layout engine tests. Committed by PH. Thanks to Mehdi Houshmand. See Issue 52010.

- add

  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.

- add

  Upgraded all tests to JUnit 4. Committed by VH. Thanks to Mehdi Houshmand. See Issue 51928.

- add

  Added support for resolution of relative URIs against a specified xml:base during property refinement. Committed by AD. See Issue 48334.

- fix

  Fix incorrect language and country code key generation in hyphenation tree cache. Committed by GA. Thanks to Dieter von Holten. See Issue 53458.

- fix

  Eliminate javadocs warnings. Committed by GA.

- fix

  Eliminate incorrect use of object identity which produces excessive property cache collisions. Committed by GA. Thanks to Alexios Giotis. See Issue 53412.

- fix

  Eliminate javadocs warnings. Committed by GA.

- fix

  Use new double format utility to improve thread safety and performance. Committed by GA. Thanks to Ognjen Blagojevic. See Issue 43940.

- fix

  Convert block container overflow exception to event model, improving overflow property behavior. Committed by GA. Thanks to Luis Bernardo. See Issue 53094.

- fix

  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.

- fix

  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.

- fix

  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.

- fix

  Support list-block in marker, thus preventing NPE. Committed by GA. See Issue 52763.

- fix

  Must use unqualified (local name) when reporting invalid child error. Committed by GA.

- fix

  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.

- fix

  Bug in AFP font metrics that performed integer arithmetic when it should have been double arithemetic. Committed by MH.

- fix

  Bring clone() in line with the recommendations in Object.clone(). Committed by GA. Thanks to Simon Pepping. See Issue 49754.

- fix

  How to use native text with EPSDocumentGraphics2D. Committed by GA. Thanks to Luis Bernardo. See Issue 52966.

- fix

  Allow https scheme URI for PDF external action target. Committed by GA. Thanks to Paul Huemer. See Issue 51599.

- fix

  RTF percentage table column width not calculated from table. Committed by GA. Thanks to Carsten Pfeiffer. See Issue 50901.

- fix

  RTF generates unexpected lines for blocks in tables. Also fix three findbugs issues. Committed by GA. Thanks to Max Aster. See Issue 51009.

- fix

  RTF tables do not support percent column-widths. Committed by GA. Thanks to Max Aster. See Issue 51007.

- fix

  Access denied (java.util.PropertyPermission org.apache.fop.fo.properties.use-cache read). Committed by GA. Thanks to Armin Haaf. See Issue 50435.

- fix

  Incorrect message when encountering a block in an inline in a footnote. Committed by GA. Thanks to Adrian Buza. See Issue 49763.

- fix

  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.

- fix

  Eliminate duplicate code. Committed by GA. Thanks to Julien Aymé. See Issue 49302.

- fix

  Correct coding error in AFPResourceLevel#equals. Committed by GA. Thanks to Julien Aymé. See Issue 49350.

- fix

  Throw IFException instead of NPE if navigation target (page reference) doesn't exist. Committed by GA. Thanks to Melanie Drake. See Issue 51836.

- fix

  Fixed memory waste in traits map. Committed by GA. Thanks to Sergey Vladimirov. See Issue 51808.

- fix

  Fixed small memory waste in rowCells array construction. Committed by GA. Thanks to Sergey Vladimirov. See Issue 51807.

- fix

  Fixed incorrect rejection of fo:wrapper inside fo:inline inside fo:footnote-body. Committed by GA. Thanks to Alberto Simões. See Issue 53005.

- fix

  Fixed deadlock in PropertyCache. Committed by VH. Thanks to Alexios Giotis. See Issue 46962.

- fix

  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

  Fix of a bug introduced when merging ImproveAccessibility. Committed by PH.

- fix

  Fixed rendering of special glyphs when using single-byte encoding mode. Committed by VH. Thanks to Luis Bernardo. See Issue 52655.

- fix

  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

  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

  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

  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

  Fix for avoid ArrayIndexOutOfBoundsException for codepoints without a linebreak class Committed by AD. See Issue 50471.

- fix

  Replaced magic numbers with constants from UnitConv and GraphicsConstants. Committed by VH. Thanks to Joshua Marquart. See Issue 49695.

- update

  Update xmlgraphics common jar to reflect recent fixes in XGC. Committed by GA. See Issue 53055.

- update

  Fix handling of NaN, {+,-}Infinity, and other edge cases. Submitted by Julien Aymé. Committed by GA. Thanks to Julien Aymé. See Issue 43940.

- update

  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.

- update

  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

- add

  Added configuration option to set the version of the output PDF document. Committed by VH. Thanks to Mehdi Houshmand. See Issue 51385.

- fix

  Fix crash on use of version switch (-v). Committed by GA. Thanks to Luis Bernardo. See Issue 52144.

- fix

  Fix exception thrown from use of -print option in CLI. Committed by GA. Thanks to Luis Bernardo. See Issue 53248.

- fix

  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

  Fix renderer mime type for PCL output; should be application/x-pcl. Committed by GA. See Issue 53247.

- update

  Update FAQ and New Bug documentation. Committed by GA.

## Changes to the Font Subsystem

- add

  Add support for OpenType advanced typographic tables (GDEF, GSUB, GPOS). Committed by GA.

- add

  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.

- add

  Added convenience support for the flushing of the Fop font cache file from the command line. Committed by AC.

- fix

  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.

- fix

  Ensure fonts are not loaded twice (redundantly). Committed by GA. See Issue 53143.

- fix

  Bugfix for color model in IOCA IDE structure parameter for 4- and 8-bit grayscale images. Revision 4. Committed by PH. See Issue 48696.

- fix

  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.

- fix

  PDFFactory responsible for asdigning name to a subset font. Committed by PH. Thanks to Mehdi Houshmand. See Issue 51759.

- fix

  Improved support for EBCDIC encoded double byte fonts fo AFP. Committed by PH. Thanks to Mehdi Houshmand. See Issue 51530.

- fix

  Corrected typographical errors in AFPBase12FontCollection. Committed by PH. Thanks to Mehdi Houshmand. See Issue 51205.

- fix

  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.

- fix

  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.

- fix

  Removed invalid entries in ToUnicode table of CID subset fonts. Committed by JM. Thanks to Mehdi Houshmand. See Issue 51144.

- fix

  Reinstated support for being able to specify a font cache filepath in the fop user configuration. Committed by AC.

- update

  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

  Fix incorrect SVG line dash pattern with PDF output format. Committed by GA. Thanks to Luis Bernardo. See Issue 53431.

- fix

  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.

- update

  Fix interoperability issue with Adobe reader regarding use of multiple filters. Committed by GA. Thanks to Luis Bernardo. See Issue 40676.

- update

  Update site documentation about PNG image loading configuration and support. Committed by GA. Thanks to Luis Bernardo. See Issue 40676.

- update

  Fix newly introduced findbugs warnings. Committed by GA. Thanks to Luis Bernardo. See Issue 40676.

## Changes to the Layout Engine

- add

  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.

- fix

  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

  Fix for break before (break-before) not respected on blocks nested in inlines. Committed by GA. Thanks to Luis Bernardo. See Issue 45715.

- fix

  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.

- fix

  Ensure that table cell spanning works in right-to-left writing mode. Committed by GA. Thanks to Matthias Reischenbacher. See Issue 53103.

- fix

  Ensure that table footer and header are included in bididirectional resolution. Committed by GA. See Issue 53086.

- fix

  Ensure writing-mode specified on fo:table is used to determine writing mode of table and its descendants. Committed by GA. See Issue 53097.

- fix

  Ensure square image is appropriately scaled. Committed by GA. Thanks to Luis Bernardo. See Issue 52514.

- fix

  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.

- fix

  Implemented non-standard behavior for basic-link areas, such that they take into account the heights of their descendants areas. Committed by VH.

- fix

  Fix for keep-together does not apply to fo:table-cell. Committed by VH.

- fix

  Fix for keep-together on a table containing row-spanning cells that was not honored. Committed by VH.

- fix

  Fix forpadding-start ignored when table-header/footer is repeated. Committed by VH. Thanks to Matthias Reischenbacher. See Issue 50196.

- fix

  Fix for correct behavior of keep-together.within-line in case there are nested inlines Committed by AD. See Issue 49848.

- fix

  Fix for avoid ClassCastException when using fox:widow-content-limit Committed by AD. See Issue 48380.

- fix

  Fix for content after forced break in block-container is not rendered. Committed by VH. See Issue 50089.

- fix

  Fixed adjustment of inline parent area for justified text containing a forward page reference. Committed by JM. See Issue 42034.

- fix

  Fixed behavior when combining hyphenation with preserved linefeeds or whitespace. Committed by AD. See Issue 38264.

- fix

  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)

- add

  Added possibility to embed TrueType fonts in PostScript. Committed by VH. See Issue 52338.

- add

  Various bugfixes to make PDFDocumentGraphics2D operational again. Committed by JM.

- add

  Added support for 128bit encryption in PDF output. Committed by VH. Thanks to Michael Rubin.

- add

  Added an IFDocumentHandler filter for triggering rendering events. Created an Event that captures an end page event with the page number. Committed by PH.

- add

  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.

- add

  Added option for PostScript output to optimize for file size rather than quality. Committed by JM.

- add

  AFP GOCA: Added option to disable GOCA and to control text painting inside GOCA graphics. Committed by JM.

- add

  Added id element to intermediate format to track the origin of content. Committed by VH.

- add

  Added support for CIE Lab colors (from XSL-FO 2.0 WD). Committed by JM.

- add

  Initial work on spot colors (aka named colors) for PDF output. Committed by JM. Thanks to Patrick Jaromin. See Issue 49403.

- add

  Allow afp:no-operation to also appear under fo:page-sequence and fo:declarations. Committed by JM.

- add

  Added some support for break-before/-after for RTF output. Committed by JM. Thanks to Max Aster. See Issue 42600.

- add

  Added ability to embed an external AFP page segment resource file (AFP output only). Committed by JM. Thanks to Peter Hancock. See Issue 49379.

- add

  Added support for PDF File Attachments (Embedded Files). Committed by JM. Thanks to Andrejus Chaliapinas. See Issue 44460.

- fix

  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.

- fix

  Add extension to place code just before PostScript %PageTrailer. Committed by GA. Thanks to Luis Bernardo. See Issue 53295.

- fix

  Fix invalid PostScript file being created when font-size is 0. Committed by GA. Thanks to Robert Meyer. See Issue 53294.

- fix

  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.

- fix

  Support fractional line widths in AFP renderer, fixing problem with SVG line drawing. Committed by GA. Thanks to Luis Bernardo. See Issue 53242.

- fix

  Fix for invalid PDF for certain numerical values in SVG lineargradient. Committed by GA. Thanks to Luis Bernardo. See Issue 40699.

- fix

  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.

- fix

  Don't write final /sect suffix in RTF if section is last section. Committed by GA. Thanks to Benjamin Riefenstahl. See Issue 51484.

- fix

  Take leading derived space before/after into account when computing rows for TXT renderer. Committed by GA. See Issue 52114.

- fix

  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.

- fix

  Fixed a bug in AFP where an ArrayOutofBoundsException is throwqn when embedding a Page Segment. Committed by PH.

- fix

  Fixed a bug in AFP where the object area axes of an Include Object was incorrectly set when rotated by 180. Committed by PH.

- fix

  Fixed a multi-threading bug for SVG images included through svg:image inside SVG documents. Committed by JM.

- fix

  Fix for alternative text not working in tagged PDF for TIFF images. Committed by VH.

- fix

  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.

- fix

  Fixed mapping of font weights between CSS values and TextAttribute.WEIGHT_*. Committed by JM. Thanks to Glenn Adams. See Issue 50899.

- fix

  AFP GOCA: fonts were not embedded from within AFPGraphics2D. Committed by JM.

- fix

  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.

- fix

  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.

- fix

  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.

- fix

  Bugzilla 51010: Bookmarks create useless lines in RTF Committed by CB. Thanks to Max Aster. See Issue 51010.

- fix

  Bugzilla 51008: page-number-citation-last does not work in RTF Committed by CB. Thanks to Max Aster. See Issue 51008.

- fix

  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.

- fix

  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.

- fix

  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.

- fix

  Increased maximum possible PDF size from 2GB to around 9GB (hard maximum imposed by the PDF specification). Committed by JM.

- fix

  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.

- fix

  Fixed a multi-threading issue when rendering SVG. Committed by JM. Thanks to Alexios Giotis. See Issue 46360.

- remove

  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

  Fix errors and warnings in example files. Add build.xml for documentation examples. Committed by GA.

- update

  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.