- 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 0.95beta

- Introduction and explanation of symbols
- Version 0.95beta (26 March 2008)
  - Changes to the End-User API
  - Changes to the Code Base
  - Changes to the Bundled Extensions
  - Changes to the Font Subsystem
  - Changes to the Image Support
  - Changes to the Layout Engine
  - Changes to Renderers (Output Formats)
  - 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 0.95beta (26 March 2008)

### Changes to the End-User API

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

### Changes to the Code Base

- Turned on XInclude processing for the main source given on the command line. Committed by MB.
- Added very basic parsing for the xml:lang shorthand. Committed by AD.
- Added support for SVGZ. Committed by JM. Thanks to Max Berger. See Issue 43597.
- Added correct percentage resolution for arguments to the proportional-column-width() function. Committed by AD. See Issue 41631.
- 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.
- Fixed a bug when using relative font-size (smaller/larger) in combination with percentages. Committed by AD. See Issue 44343.
- Fixed a memory-leak in XMLWhiteSpaceHandler. Committed by AD. Thanks to Stefan Ziel. See Issue 44286.
- Bugfix for URI resolution: Make StreamSources without system identifier work again. Committed by JM.
- Avoid a NullPointerException in AreaTreeHandler.endDocument(). Committed by JM. Thanks to David Delbecq. See Issue 43910.

### Changes to the Bundled Extensions

- 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.
- 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

- 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 Font support in jar files. Committed by AC. Thanks to Max Berger. See Issue 42982.
- 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.
- Bugfix for date formatting with negative time zones in the PDF's Info object. This affected PDF/A compliance. Committed by JM.
- Bugfix for handling of optional tables in subset TrueType fonts. This bug caused errors in various PDF viewers. Committed by JM.
- 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.
- Made the way TrueType fonts are embedded in PDF compliant to the specification so viewers correctly identify subset fonts. Committed by JM.
- Fixed font-autodetection so fonts with uppercase extensions are detected, too. Committed by JM.
- Fix to avoid NullPointerException when parsing ExpertEncoded and ExpertSubsetEncoded Type 1 fonts. Committed by AC. See Issue 43143.
- 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

- 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

- Added support for background on fo:table-column and fo:table-header/footer/body elements. Committed by VH.
- Added full support for keep-with-previous on fo:table-row and in fo:table-cell elements. Committed by VH.
- 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.
- Added full support for breaks inside the cells of a table. Committed by VH.
- Added support for conditional borders in tables, for both the separate and the collapsing border model. Committed by VH. See Issue 43934.
- 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.
- Added support for scale-down-to-fit and scale-up-to-fit (introduced in XSL 1.1). Committed by JM.
- Added methods for fo:page-number-citation(-last) in FOEventHandler. Committed by JM. Thanks to V. Schappert. See Issue 43605.
- Step towards performance: the collapsing-border resolution algorithm no longer triggers the retrieving of the whole table, when possible. Committed by VH.
- Added check for table-cells which span more rows than available in their parent element (table-header/footer/body). Committed by VH.
- Added support for fo:markers in fo:inline and fo:basic-link. Committed by AD.
- Added support for ids on empty fo:inlines. Committed by AD. See Issue 42748.
- 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.
- 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.
- 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.
- Fixed exceptions when lists, tables or block-container are children of an inline-level FO. Committed by JM.
- 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.
- Improved conformance: even if a table-cell spans several rows its background must correspond to the first row spanned. Committed by VH.
- 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.
- Fixed the resolution of borders when header/footer is omitted at page breaks. Committed by VH. See Issue 44289.
- Fixed a possible IndexOutOfBoundsException that could happen with certain constellations when footnotes are used. Committed by JM. See Issue 44160.
- Compliance fix: for absolutely positioned block-containers, "top" wasn't interpreted correctly. Committed by JM.
- Bugfix: content of a row with zero height overriding the previous row Committed by VH. See Issue 43633.
- Bugfix for border-after painting and element list generation when a forced break is involved. Committed by JM. See Issue 43917.
- Bugfix: no empty page is generated anymore if there's no content after a break-after. Committed by JM. See Issue 40230.
- Restored proper handling of fo:table-cell having no children, which is allowed in relaxed validation mode. Committed by VH. See Issue 43803.
- Memory Leak fixed in the Property Cache. Fixed by Jeremias Maerki. Reported and Tested By Chris Bowditch. Committed by JM.
- 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.
- 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.
- 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.
- Fixed the resolution of borders with table-columns (border-before/after was wrongly applied to every cell of the column). Committed by VH.
- Fixed the resolution of border-end on cells spanning several rows. Committed by VH. See Issue 42768.
- Bugfix for NPE with empty table-row (regression from 0.93). Committed by JM.
- Fixed swallowing PCDATA in text-node children of retrieved markers. Committed by AD. See Issue 42705.
- Fixed erroneous white-space removal in retrieved markers. Committed by AD. See Issue 42703.
- Fixed erroneous usage of inherited color-values in SVG. Committed by AD. Thanks to ckohrn.at.tng.de. See Issue 43274.
- 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.
- 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)

- 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.
- 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.
- PostScript output now generates the bounding box DSC comments for the whole document. Committed by JM.
- Added support for PDF page labels. Committed by JM.
- Added support for custom fonts in Java2DRenderer and derived renderers. Committed by JM. Thanks to Patrick Jaromin. See Issue 44176.
- Added generic structures to the PDF library in order to support PDF file in fo:external-graphic later. Committed by JM.
- Added a configuration setting to the PCL renderer to disable PJL commands. Committed by JM.
- Added a configuration setting for the renderer/device resolution to the AFP renderer. Committed by JM. Thanks to Adrian Cumiskey. See Issue 43041.
- Slight improvement for thin lines in Java2D/AWT output. Committed by JM. Thanks to Gordon Cooke.
- 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.
- Fixed generation of named destinations so it works when the PDF document is encrypted. Committed by JM.
- Bugfix: allow multiple bookmarks to point at the same destination. Committed by JM. See Issue 37993.
- Fixed regression: transparent-page-background was not recognized for PNG output. Committed by JM.
- Postscript extension cleanup. Committed by AC. Thanks to Andrejus Chaliapinas. See Issue 43042.
- Fix to avoid ClassCastException where multiple ps:ps-comments are declared within fo:declarations. Committed by AC. See Issue 43587.
- Fixes missing TLE value attribute when using AreaTree input with the AFP renderer. Committed by AC. See Issue 43439.
- Fix to avoid a ClassCastException in renderer configuration. Committed by JM. Thanks to Bruno Feurer. See Issue 43464.
- 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.
- 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.