FOray Users
Module Users

FOray: Release Notes, Release 0.1

Release 0.1 can be obtained from the source code repository by using the tag rel_0_1_branch.

Release 0.1 is totally oriented toward modularization of the system, and toward improvements to the font system.

Changes from FOP 0.20.5 to FOray 0.1 of Interest to Users

Current work is deliberately focused on architecture, not features. However, the following improvements have resulted as side-effects of the architectural changes:

  • Embedded CID fonts had a prefix added to their names in the PDF output file. This has been removed.
  • Fonts subsetting should now be thread-safe. Each document has its own list of characters used for font embedding/subsetting purposes. This needs to be tested in a multi-threading environment. (Also, please note that, because of limitations in the handling of System fonts which have yet to be resolved, some custom coding will probably be required to keep the FontServer running across multiple documents.

In addition, the following changes should be noted:

  • All font configuration entries, which used to reside in the FOP configuration file, must now be located in a separate file. There is a new FOray configuration entry font-configuration which should be used to point to this new file.
  • The font configuration file should have a root element of <foray-font-config>. The <font> elements are children of the root. No other changes have been made to the way fonts are configured.

Changes from FOP 0.20.5 to FOray 0.1 of Interest to Developers

  • Font-related classes have been extracted into a separate module.
  • Graphic and PDF-related classes have also been extracted into separate modules as a side-effect of getting the Font-related classes extracted.
  • Subclass relationships between Font-related classes have been cleaned up extensively.
  • The relationship between Font concepts and PDF implementation concepts has been clarified greatly (probably needs more work).
  • Visibility on most Font-related classes has been reduced.
  • The following methods in the forayFont class called Font (called fonts/FontMetrics in FOP's HEAD) were returning values in millionths of a point: getAscender(), getDescender(), getCapHeight(), getXHeight(), and getCharWidth(). Methods using values returned by these methods were typically dividing the returned values by 1000. The Font methods have been changed to return values in millipoints (1/1000 of a point), and the corresponding methods in fop-maint have been changed to not divide by 1000. Although this makes sense, it may be confusing to anyone trying to implement the forayFont module into FOP's HEAD.