# History of Changes 0.95beta

# 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 0.95beta (26 March 2008)

## Changes to the End-User API

- remove

  Removed deprecated methods in the "apps" package that were left-overs from the API discussions. Committed by JM.

## Changes to the Code Base

- add

  Turned on XInclude processing for the main source given on the command line. Committed by MB.

- add

  Added very basic parsing for the xml:lang shorthand. Committed by AD.

- add

  Added support for SVGZ. Committed by JM. Thanks to Max Berger. See Issue 43597.

- fix

  Added correct percentage resolution for arguments to the proportional-column-width() function. Committed by AD. See Issue 41631.

- fix

  Fixed a bug when the rgb-icc() function was used either before the fo:declarations, or in documents without a fo:declarations node. In such cases, the sRGB fallback is now used to avoid an ugly NullPointerException. Committed by AD. See Issue 43705.

- fix

  Fixed a bug when using relative font-size (smaller/larger) in combination with percentages. Committed by AD. See Issue 44343.

- fix

  Fixed a memory-leak in XMLWhiteSpaceHandler. Committed by AD. Thanks to Stefan Ziel. See Issue 44286.

- fix

  Bugfix for URI resolution: Make StreamSources without system identifier work again. Committed by JM.

- fix

  Avoid a NullPointerException in AreaTreeHandler.endDocument(). Committed by JM. Thanks to David Delbecq. See Issue 43910.

## Changes to the Bundled Extensions

- add

  New extension attribute fox:transform on fo:block-container allows free-form transformation (rotation, scaling etc.) of absolute and fixed block-containers. Supported only for PDF, PS and Java2D-based renderers. Committed by JM.

- add

  Added new extension element: fox:external-document. It allows to add whole documents such as multi-page TIFF images to be inserted as peers to a page-sequence. Each image will make up an entire page. See the documentation for details. Committed by JM.

## Changes to the Font Subsystem

- add

  Added support for unusual font encodings (like for Symbol or Cyrillic fonts) of Type 1 fonts in PDF and PostScript output. Committed by JM.

- add

  Add Font support in jar files. Committed by AC. Thanks to Max Berger. See Issue 42982.

- fix

  Improved the font auto-detection so fonts accessed using the font-family name are selected with higher accuracy. Committed by JM. Thanks to Justus Piater. See Issue 44451.

- fix

  Bugfix for date formatting with negative time zones in the PDF's Info object. This affected PDF/A compliance. Committed by JM.

- fix

  Bugfix for handling of optional tables in subset TrueType fonts. This bug caused errors in various PDF viewers. Committed by JM.

- fix

  Bugfix: Use Font.getName() (logical font name) instead of Font.getFontName() (localized) when registering fonts from AWT. Committed by JM. Thanks to David Churavy. See Issue 43835.

- fix

  Made the way TrueType fonts are embedded in PDF compliant to the specification so viewers correctly identify subset fonts. Committed by JM.

- fix

  Fixed font-autodetection so fonts with uppercase extensions are detected, too. Committed by JM.

- fix

  Fix to avoid NullPointerException when parsing ExpertEncoded and ExpertSubsetEncoded Type 1 fonts. Committed by AC. See Issue 43143.

- update

  Improved font auto-detection and handling of AWT-supplied fonts in order to achieve better results when using multiple output formats. Whenever possible, the font names appearing in the operating system can also be used in XSL-FO. Committed by JM.

## Changes to the Image Support

- fix

  A new image loading framework has been introduced to fix various problems with external graphics and improve performance. Committed by JM.

## Changes to the Layout Engine

- add

  Added support for background on fo:table-column and fo:table-header/footer/body elements. Committed by VH.

- add

  Added full support for keep-with-previous on fo:table-row and in fo:table-cell elements. Committed by VH.

- add

  Added full support for breaks before and after table cells (that is, break-before/after set on the first/last child of a cell). Committed by VH.

- add

  Added full support for breaks inside the cells of a table. Committed by VH.

- add

  Added support for conditional borders in tables, for both the separate and the collapsing border model. Committed by VH. See Issue 43934.

- add

  Added minimal support for the .minimum/.maximum components of block/inline-progression-dimension on fo:external-graphic and fo:instream-foreign-object. Committed by JM.

- add

  Added support for scale-down-to-fit and scale-up-to-fit (introduced in XSL 1.1). Committed by JM.

- add

  Added methods for fo:page-number-citation(-last) in FOEventHandler. Committed by JM. Thanks to V. Schappert. See Issue 43605.

- add

  Step towards performance: the collapsing-border resolution algorithm no longer triggers the retrieving of the whole table, when possible. Committed by VH.

- add

  Added check for table-cells which span more rows than available in their parent element (table-header/footer/body). Committed by VH.

- add

  Added support for fo:markers in fo:inline and fo:basic-link. Committed by AD.

- add

  Added support for ids on empty fo:inlines. Committed by AD. See Issue 42748.

- fix

  Bugfix: The before border of a block is no longer swallowed if its first child issues a break-before. Committed by JM. See Issue 44412.

- fix

  Bugfix: When there was a forced break after a block with (conditional) borders the border-after wasn't painted. Committed by JM. See Issue 44412.

- fix

  Bugfix: a forced break inside a cell was ignored when occurring before the minimum height set on the enclosing row was set. Committed by VH.

- fix

  Fixed exceptions when lists, tables or block-container are children of an inline-level FO. Committed by JM.

- fix

  Fixed the rendering of the area of a table corresponding to border-separation, which must be filled with the background of the table, and not the rows. Committed by VH.

- fix

  Improved conformance: even if a table-cell spans several rows its background must correspond to the first row spanned. Committed by VH.

- fix

  Moved to the FO tree stage the check for break-before/after on table-row while spanning in progress. Committed by VH. See Issue 44321.

- fix

  Fixed the resolution of borders when header/footer is omitted at page breaks. Committed by VH. See Issue 44289.

- fix

  Fixed a possible IndexOutOfBoundsException that could happen with certain constellations when footnotes are used. Committed by JM. See Issue 44160.

- fix

  Compliance fix: for absolutely positioned block-containers, "top" wasn't interpreted correctly. Committed by JM.

- fix

  Bugfix: content of a row with zero height overriding the previous row Committed by VH. See Issue 43633.

- fix

  Bugfix for border-after painting and element list generation when a forced break is involved. Committed by JM. See Issue 43917.

- fix

  Bugfix: no empty page is generated anymore if there's no content after a break-after. Committed by JM. See Issue 40230.

- fix

  Restored proper handling of fo:table-cell having no children, which is allowed in relaxed validation mode. Committed by VH. See Issue 43803.

- fix

  Memory Leak fixed in the Property Cache. Fixed by Jeremias Maerki. Reported and Tested By Chris Bowditch. Committed by JM.

- fix

  Bugfix in tables: wrong element generation by the merging algorithm when glues must be produced to cope with conditional spaces. The corresponding length was added twice: one in the glue itself and one in the following box. Committed by VH. See Issue 43712.

- fix

  Bugfix: breaks generated by the merging algorithm for a table-row containing empty cells had always a penalty of 900. Committed by VH. See Issue 43766.

- fix

  In case of missing cells the border-end of the table was applied to an inner cell, instead of the (empty) cell in the last column. Committed by VH.

- fix

  Fixed the resolution of borders with table-columns (border-before/after was wrongly applied to every cell of the column). Committed by VH.

- fix

  Fixed the resolution of border-end on cells spanning several rows. Committed by VH. See Issue 42768.

- fix

  Bugfix for NPE with empty table-row (regression from 0.93). Committed by JM.

- fix

  Fixed swallowing PCDATA in text-node children of retrieved markers. Committed by AD. See Issue 42705.

- fix

  Fixed erroneous white-space removal in retrieved markers. Committed by AD. See Issue 42703.

- fix

  Fixed erroneous usage of inherited color-values in SVG. Committed by AD. Thanks to ckohrn.at.tng.de. See Issue 43274.

- update

  Facilitate the implementation for font-selection-strategy:
  • Changed FontInfo.fontLookup to always return an array of FontTriplet.
  • Changed CommonFont.getFontState to return an array of FontTriplet.
  • Initial modifications to the related LMs: initialized with the font corresponding to the first of the triplets.
  Committed by AD.

- update

  PropertyCache phase 2:
  • improvement of the PropertyCache itself should now guarantee acceptable performance of the static caches in multi-session environments, which is a possible problem with synchronizedMap.
  • changed CommonFont to use the cache: added CachedCommonFont to contain the properties that are always cacheable CommonFont itself is only cached if the remaining properties are absolutes.
  • changed CommonHyphenation, KeepProperty, ColorProperty and FontFamilyProperty to use the cache.
  Committed by AD.

## Changes to Renderers (Output Formats)

- add

  Added an option to disable the default sRGB profile in PDF output for those who don't care about color fidelity, but care about PDF file size. Committed by JM.

- add

  Added support for the natural language indentifier ("Lang" in the document catalog) for PDF documents based on the language/country values on fo:page-sequence. Committed by JM.

- add

  PostScript output now generates the bounding box DSC comments for the whole document. Committed by JM.

- add

  Added support for PDF page labels. Committed by JM.

- add

  Added support for custom fonts in Java2DRenderer and derived renderers. Committed by JM. Thanks to Patrick Jaromin. See Issue 44176.

- add

  Added generic structures to the PDF library in order to support PDF file in fo:external-graphic later. Committed by JM.

- add

  Added a configuration setting to the PCL renderer to disable PJL commands. Committed by JM.

- add

  Added a configuration setting for the renderer/device resolution to the AFP renderer. Committed by JM. Thanks to Adrian Cumiskey. See Issue 43041.

- fix

  Slight improvement for thin lines in Java2D/AWT output. Committed by JM. Thanks to Gordon Cooke.

- fix

  Fixed logic error setting the transformation matrix for block-container viewports (applies to absolute and fixed block-containers only). Important: External renderer implementations need to adjust for the change and implement the new method concatenateTransformationMatrix(AffineTransform) if the renderer is derived from AbstractPathOrientedRenderer. Committed by JM.

- fix

  Fixed generation of named destinations so it works when the PDF document is encrypted. Committed by JM.

- fix

  Bugfix: allow multiple bookmarks to point at the same destination. Committed by JM. See Issue 37993.

- fix

  Fixed regression: transparent-page-background was not recognized for PNG output. Committed by JM.

- fix

  Postscript extension cleanup. Committed by AC. Thanks to Andrejus Chaliapinas. See Issue 43042.

- fix

  Fix to avoid ClassCastException where multiple ps:ps-comments are declared within fo:declarations. Committed by AC. See Issue 43587.

- fix

  Fixes missing TLE value attribute when using AreaTree input with the AFP renderer. Committed by AC. See Issue 43439.

- fix

  Fix to avoid a ClassCastException in renderer configuration. Committed by JM. Thanks to Bruno Feurer. See Issue 43464.

- fix

  Fixed the restoration of the TLE values from the intermediate format for the AFP extension elements. Committed by JM. Thanks to Adrian Cumiskey. See Issue 43439.

- update

  PDF Transcoder (SVG) text painting has been completely rewritten. Except for some special cases (with filters for example), all text (including flow text) is now painted using PDF text operators. Committed by JM.

## 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), Jeremias Märki (JM), Max Berger (MB), Vincent Hennebert (VH).

This is a list of other contributors:
Adrian Cumiskey, Andrejus Chaliapinas, Bruno Feurer, ckohrn.at.tng.de, David Churavy, David Delbecq, Gordon Cooke, Justus Piater, Max Berger, Patrick Jaromin, Stefan Ziel, V. Schappert.