WHAT'S NEW IN XEP

XEP 4.22
New features and improvements
=============================

- New RenderX extensions:
  - Injection of a complete external PDF as a whole (@rx:insert-document in <fo:page-sequence> elements).
  - Selection of a specific page of a PDF image (@rx:pdf-page in <fo:external-graphic> elements).
- Improvements in Section 508 accessibility.
- oXygen XML Editor 15 in DocBench bundle.
- Bug fixes:
  - Re-ordering of gradients in SVG
  - Gradients with opacity on paths in SVG


Changes since 4.21
==================
- Configuration parameter ROLE_MAP defining path to PDF Structure Tags configuration file 
has been moved from generator options to kernel options list in xep.xml.

XEP 4.21
New features and improvements
=============================

- Extended support of Section 508 accessibility features via new RenderX extensions:
  - @rx:pdf-structure-type: allows to override structure types for accessible PDF documents;
  - @rx:alt-description, @rx:actual-text, and @rx:abbreviation: alternative descriptions for accessible PDF documents;
  - @rx:pdf-artifact-type, @rx:pdf-artifact-subtype: control type and subtype of PDF artifacts.
- Improved diagnostics when XEPOUT crashes.
- Improvements in the UAX #9 bidi algorithm.
- oXygen XML Editor 14.1 in DocBench bundle.
- Bug fixes:
  - re-encoding of fonts in PostScript
  - multiple color profiles in PDF/A
  - incorrect number of color components in PDF/A and PDF/X
  - incorrect @text-align=inside/outside behavior in RTL scripts
  - patterns in PostScript
  - stack overflow error for linearized PDF
  - relaxed image PDF requirements to avoid an "Unexpected end of ZLIB input stream" failure

XEP 4.20
New features and improvements
=============================

- The installers for both Java and Windows versions of XEP
  have been updated.
- XEP (Java) installer provides an option to download, install
  and configure GNU FreeFonts - an excellent collection covering
  a wide range of languages and symbols.
- Multicolumn footnote balancing algorithm is now more customizable.
- oXygen XML Editor 14.0 in DocBench bundle.
- Bug fixes:
  - relaxed TIFF requirements to avoid failures
  - correct dimensions for images in XEPOUT
  - unmatched change bars error turned into a warning
  - invalid PostScript headers on colored bookmarks
  - corrections for bidi-neutral symbols
  - collapsing custom comments in PostScript
  - @initially-selected attribute for radio-buttons in PDF forms
  - combining crop marks and text decoration bug in PostScript


Changes since 4.19
==================
- bug fixes:
  - @width and @height in XEPOUT for all images
  - dimensions and scaling issue for JPEG EXIF
  - issues related to transparency, SVG patterns, gradients, 
    and color spaces
  - bookmarks styling
  - unclosed handles in PDF embedding
  - overprint in CMYK issue

XEP 4.19
New features and improvements
=============================

New RenderX extensions:
  - <rx:rich-media-object>: interactive Flash applications in PDF, 
    with flashvars and resources; 
  - <rx:pdf-comment>: sticky notes and file attachments in PDF;
  - @rx:overprint: the attribute controls overprinting flag in PDF 
    and Postscript.

XSL 1.1 related changes:
  - support for @allowed-width-scale and @allowed-height-scale;
  - support for values "scale-up-to-fit" and "scale-down-to-fit" 
    of @content-width|height;
  - styling for bookmark titles: @color, @font-style, @font-weight;
  - all existing XSL 1.1 support refactored from XSLT into Java 
    code for performance.

Output generators:
  - XPS output producer supports SVG, including gradients;
  - a new option for XHTML generator to produce XForms;
  - action types for PDF links: open or launch target file.

Other changes:
  - JPEG images with EXIF data are supported; 
  - interlaced PNG with alpha channel supported;
  - improvements in Thai processing;
  - Saxon 6.5.3 replaced with Saxon 6.5.5; 
  - oXygen XML Editor 12.1 in DocBench bundle.
  
Bugfixes related to AcroForms, PDF stream objects, SVG gradients 
and patterns, PDF/A and PDF/X, TIFF images, and more. 


Changes since 4.18
==================
- oXygen 12 in DocBench bundle;
- bug fixes:
  - failure on SVG patterns with bitmap images
  - PDF/A errors
  - issue with crop and bleed marks in PS
  - internal issue

XEP 4.18
New features and improvements
=============================
- PPML output generator (requires a special license key);
- XPS generator supports bookmarks;
- additional JavaScript hooks on pages, fields, and document;
- new values for initial page layout;
- improvements in support for multimedia content in PDF generator:
  type and size parsing, additional playing control, poster image;
- improved rendering of Thai script;
- oXygen 11.2 in DocBench bundle.

Changes since 4.17
==================
- oXygen 11.1 in DocBench bundle.

XEP 4.17
New features and improvements
=============================
- XPS output generator;
- support for various multimedia objects in PDF generator;
- JavaScript hooks for PDF form fields;
- support for custom JavaScript libraries in PDF;
- embedding PDF 1.5 documents with "xref streams".

Changes since 4.16
==================
- oXygen 11.0 in DocBench bundle.

XEP 4.16
New features and improvements
=============================

- PDF Forms: a new extension to create interactive PDF documents, requires special license;
- new options in HTML and SVG generators allow to produce a single zip file
  with each page in a separate file inside it, and to produce just a few first pages;
- HTML and SVG generators support SVGZ images;
- HTML generator supports XEPOUT images;
- arbitrary procesing instructions inside fo:flow or fo:static-content appear in
  roughly the same places in XEPOUT;
- serialization of XEPOUT events is faster;
- AFP backend now supports native JPEG images;
- added support for Invoke Medium Map (IMM) instruction in AFP backend;
- oXygen 10.3 in DocBench bundle. 

Changes since 4.15
==================
- Changes in AFP backend:
  - AFPGrayImage option is no longer supported; Use data-types/@default-name instead;
  - Significant performance improvement if native JPEG images used;
  - TLE instructions and NOP comments may contain commas by enclosing them into single quotes;

XEP 4.15
New features and improvements
=============================

- HTML output producer (requires a special license);
- alpha channel in PNG images is supported in PDF backend;
- SVG patterns and gradients are supported;
- opacity in SVG is supported in PDF backend;
- a new option protects against a memory leak on SVG and data images;
- less memory is required for PS generator;
- bug fixes:
  - correct positioning of Arabic diacritics;
  - PDF linearization;
- DocBench bundle includes oXygen XML Editor 10.2.


XEP 4.14
New features and improvements
=============================

- SVG backend produces a single SVG file with all pages;
- XEP Intermediate Format files (XEPOUT) are supported as vector graphics files, 
  e.g. for fo:external-graphic (the first page is displayed);
- a new option IMAGE_INLINE_THRESHOLD allows to control placement of images 
  inside PostScript document: they go either in document setup or in page setup 
  section, depending on the value of the option and the number of times the image 
  appears in the document;
- the number of pages generated by an fo:page-sequence may be forced to be 
  a multiple of N by setting the value "xN" for @force-page-count;
- XEPWin supports input files with embedded style sheets and makes use of temporary 
  directory saving more memory for formatting;
- bug fixes in PostScript generator;
- support for page-number-citation-last in FO namespace restored;
- PDF/A compliance has been improved;
- DocBench bundle includes oXygen XML Editor 10.

Changes since 4.13
==================

- PDF compression: properly close DeflaterOutputStream;
- PDF/A compliance: time-stamp formats fixed;
- Compatibility fix in Transpromo: alternatives for 'any' are not considered.

XEP 4.13
New features and improvements
=============================

- 'Transpromo' extension: when choosing a page master, XEP iterates 
  over a set of page masters suitable for 'last' or 'only' until it
  finds one that fits;
- 'Watermark' extension: a XEPOUT file referenced as URI in fo:simple-page-master/@rx:watermark
  is drawn first on a page which uses this fo:simple-page-master;
- bug fixes in PDF/A support;                                                                                        
- @background-image works on all table elements;
- DocBench bundle includes oXygen XML Editor 9.3.

XEP 4.12
New features and improvements
=============================

- 'Multicolumn footnotes' extension: footnote-column-count and 
  footnote-column-gap attributes on fo:region-body;
- 'Unique footnotes' extension: content of footnote-bodies with
  equal value of id attribute collapse to one per page;
- PDF/A support;
- Custom meta-fields for PDF document properties;
- Encoding tables are not truncated if font is not subsetted;
- DocBench bundle includes oXygen XML Editor 9.1.

XEP 4.11
New features and improvements
=============================

- XSL 1.1 folio-prefix and folio-suffix are supported;
- Initial encoding for Type 1 fonts may be specified in the configuraion file;
- PDF options: 
  - initial layout: single-page, continuous;
  - viewer preferences: hiding toolbar, menubar, scrollers; fit window, center window, window title;
  - switching between real/logical page numbers;
- Foreign elements ignored right after fo:root;
- DocBench bundle includes oXygen XML Editor 9.0;
- XEPWin Integration and Connectivity Kit:
  - A new multithreaded example in C# intended to measure performance has been added;

Changes since 4.10
==================

- Embedding of PDF files with non-standard sizes of page boundary boxes fixed;
- Embedding of PDF files with /Indexed color space fixed;
- Support for TIFF images with FillOrder 2 and CCITT compression restored;
- fo:bookmark/@starting-state is supported;
- PostScript generator supports two new processing instructions: xep-postscript-page-label and xep-postscript-custom-comment;
- Single strip TIFF images without StripByteCounts tag are now supported;
- Unicode-aware TrueType fonts for Mac are now supported;
- A bug with crop/bleed marks for accessible PDF files has been fixed.

XEP 4.10
New features and improvements
=============================

- XEPWin distribution contains JRE 1.6.
- Best performance of XEP is achieved on JRE 1.6: compared to that on JRE 1.4 and depending 
  on OS, input documents properties and configuration, it is from 18% up to 82% higher.
- AFP-related features:
  - Multilingual support: Greek character set added; basic support of the Chinese character set has been added;
  - Added basic support of native AFP raster fonts;
  - Improved configuration of codepages introduced;
- PDF-related features:
  - Improved page numbering has been added;
  - Added Custom comments;
- DocBench bundle includes oXygen XML Editor 8.2;
- Integration and Connectivity Kit:
  - A new multithreaded example intended to measure performance has been added;
  - xep-debug.jar prints source file names and line numbers if an error occures inside XEP.

Fixes since 4.9
===============
- Changes in AFP backend:
  - Issue with exception thrown when images with certain dimensions are processed;
  - Wrong processing of G:OCA sequences in multithreaded environment fixed;
  - Some BC:OCA barcodes did not rotate correctly;
  - Broken resource file for certain FORMDEF and External resource instructions fixed;
  - Improved compatibility issue with certain printers misinterpreting sequenced
    PT:OCA instructions;
  - Wrong OBD structured field fixed;
  - Incorrect processing of two-byte characters fixed.
  - Performance inprovements;
- Changes in PDF backend:
  - Fixed incorrect round-up of the coordinate transformation matrix for big objects
    within a rotated container.

XEP 4.9
New features and improvements
=============================

- AFP-related features:
  - Multilingual support: Latin, Western European, Hebrew, and Cyrillic character sets;
  - SVG bullets supported;
  - Added support of new SVG primitives with G:OCA:
    polyline, elliptical arc, Bezier curve and polycurve;
  - SVG text partial support;
  - SVG transformations, viewbox and nested svg:svg blocks are now supported;
  - SVG color support improved;
  - Extended support of WordArt graphics via WordML2FO stylesheets;
  - Option of generating Barcodes via either BC:OCA or G:OCA (using RenderX stylesheets);
  - Extended Barcodes support: Codabar, Code2of5;
    limited support of Code3of9, Code128, and 4state-AU;
- X4U: Improved user interface in XEP Assistant

Fixes since 4.8
===============
- AFP: SVG rectangles with fill=none fixed;
- AFP: rotation of BC:OCA Barcodes fixed;
- AFP: default font introduced;
- AFP: Wrong image borders fixed;
- AFP: Minor fixes and improvements;

XEP 4.8
New features and improvements
=============================

- DocBench distribution includes oXygen XML Editor 8.0;
- new fields in XEP Assistant configuration editor;
- limitation for strip/tile tags in TIFF images relaxed;
- calculation of default xHeight for Type1 fonts fixed;
- AFP-related features:
  - Barcodes support allows for AFP-standard BC:OCA encoding for some most common
    types of Barcodes; As soon as XSL-FO does not have barcodes specification,
    and RenderX extentions have been introduced, they are also used for
    generating barcodes in AFP documents.
    Please refer XEP Reference document for more information on obtaining stylesheets.
  - New feature: Bullets support introduced for AFP;
  - Highlight color (spot-color in terms of XSL-FO) allows for printing
    on Black&White printers capable with indexed 'highlight' color.
    This provides wider support of AFP-capable printers;
  - Partial support of SVG (G:OCA).

Fixes since 4.7
===============

- Better support of CMYK color allows this color schema processed;
- Minor fixes and improvements;

XEP 4.7
New features and improvements
=============================

- XEP supports XSL 1.1 change-bars, bookmarks, indices (partial), fo:page-number-citation-last, page-position="only".
  See chapter "3.7. XSL 1.1 Support" of the Reference for details;
- Major improvements in AFP backend:
  - support of FORMDEFs;
  - 'dashed' and 'dotted' line styles;
  - shading patterns;
  - caching for images (improved performance and reduced output size for images that appear on multiple pages);
  - new configuration parameters added.

Fixes since 4.6
===============

- subsetting of non-CID OTF fonts restored;
- AFP backend supports both STC and SEC PTOCA color instructions;
- AFP backend: Fixed SEC (set extended color) instructions problem;
- AFP backend: options editor in XEP Assistant improved.
- AFP backend: Fixed failure processing fonts bigger than 36 pt.
  New version substitutes these fonts as 36 pt.
- AFP backend: Fixed wrong Z-ordering of overlapped frame containers:
  background colors, borders, and text of lower container raised
  over the upper one. NOTE: causes somewhat increased output size
  due to bigger PTOCA frame overhead;
- Fixed wrong color inheritance of multi-page documents
  (loss of colors in some cases);
- Fixed Page grouping;
- Duplicated/ wrong PAGE_TLE, PAGE_GROUP_TLE operation fixed;

XEP 4.6
New features and improvements
=============================

- AFP backend (requires a special license);
- line-breaking algorithm conforms to the Unicode Standard Annex #14;
- new implementation of XSL 1.1 change bars.
- PantoneColors.txt removed from the distribution due to license restrictions. See Reference for details.

Fixes since 4.5
===============

- treatment of relative sizes on rotated containers fixed;
- improvements in processing of border-related attributes;
- svg: stroke-dasharray="0,0" fixed;
- enhanced PI serialization to the intermediate format;
- rendering of table-caption with caption-side="after" corrected;
- improvements in space distribution algorithms for automatic table layout;
- accessible PDFs may have bookmarks;
- OpenType fonts subsetting improved;
- changebars processing made more robust.

XEP 4.5

New features and improvements
=============================

- XEP supports Thai: word breaking and glyph composition/decomposition. SUN jdk 1.4+ is required for Thai rendering.
- many enhancements and bug fixes, inluding:
  side floats placement algorithm has been reworked,
  marker retrieval algorithm improved,
  text-depth treatment is conformant to the specification.

Fixes since 4.4
===============

- several fixes in PDF parser;
- SVG fill- and stroke-opacity properties made inheritable;
- hyphenator made less restrictive;
- type 1 fonts processing made more robust;
- implemented a workaroud for postscript pinters that fail on 'widthshow';
- improved rendering of changebars in display-aligned areas and multicolumn and multipage areas.

XEP 4.4

New features and improvements
=============================

- Personal license, free for noncommercial use, is now available;

- many enhancements and bug fixes, including:
  tagged PDFs can now be produced with stamped versions (Personal and Trial);
  changebars in nested lists and tables work.

Fixes since 4.3
===============

- treatment of indents on spanning blocks and flow-sections is improved;
- implemented a workaround for a bug in JRE in WeakHashMap;
- precise values are used for crop & bleed offsets;
- repeatable table headers processing made more robust.

XEP 4.3 

New features and improvements
=============================

- added Section 508 support;
  XEP can now produce documents that are in compliance with Section 508
  of the Rehabilitation Act of 1973.

- added support for repeatable table footers;
  XEP now honours 'table-omit-footer-at-break' property.

Fixes since 4.2
===============

- restored proper handling of color specifiers in 'text-shadow' property;
- overflow property in CSS style is supported;
- markers in SVG are supported;
- rendering of images optimized;
- fixed containers in static regions work;
- hyphen characters are preserved on lines affected by initial-property-set.

XEP 4.2 

New features and improvements
=============================

- Containers with fixed absolute position can now have z-index property;

- Change bars extension is now supported;

- PDF/X documents can now be produced with varying conformance level of
  PDF/X-1a or PDF/X-3;
  
- ICC profule can now be embedded into documents.

Other Improvements
==================

- Clipping of SVG images was optimized
- XEP now fills the Producer field in PDF meta-info and allows for control
  over the Creator field

Fixes since 4.1
===============

- leaders and images are kept together with the preceding text
- fallbacks for tables with overconstrained keeps are handled nicely
- page-number-citation works correctly with fonts with kerned digits
- handling of missing glyphs in subsetted fonts improved

XEP 4.1

New features and improvements
=============================

- Adobe Compact Font Format (CFF) fonts can be embedded into PDF
documents.

- Page numbers can use Arabic-Indic, Kanji, Katakana, Hiragana,
Cyrillic and Armenian numerals.

- Compressed SVG images are properly recognized and processed.

- Memory management has been improved, the formatter now uses memory
pools and weak references to avoid memory leaks and ensure efficient
resource allocation.

- Both PDF and PostScript use the Latin1 (ISO-8859-1) encoding for
symbols that can be represented in it, thus making post-processing
of generated PDF and PostScript more convenient.

- Formatting of automatically laid out tables is brought into strict
accordance with CSS2. 

- Fixes for bugs discovered since the release of XEP 4 are 
incorporated into the production code.

XEP 4.0

New features
============

1. XEP 4.0 uses a single configuration file for all subcomponents:
formatter options, fonts, and hyphenation are now configured from
a single location. The new format has the following advantages
over the old one:

 - default options for back-ends can be set in the same file;

 - font configuration is more intuitive: font families are created
   directly, and individual fonts are explicitly assigned to specific 
   combinations of font family + weight + style + variant;
  
 - font aliases can resolve to multiple font families;
  
 - font aliases can depend on the language setting.

2. Table processing is now fully conformant to the XSL Recommendation.
In particular, the following features are now supported:

 - automatic table width adjustment (table-layout="auto");

 - collapsed borders (border-collapse="collapse"|"collapse-with-precedence")

3. Additional prepress features are supported:

 - spot and registration colors can be specified in both XSL-FO and SVG;
 
 - bleeds and trim offsets can be controlled by processing instructions,
   and respective marks placed on the page;
   
 - arbitrary SVG images can be placed in the image offset area, to create
   advanced printer marks. The distribution includes sample SVGs for 
   registration targets and color bars.

4. More SVG  features are supported:

 - clipping implementation is extended to cover arbitrary combination
   of path, shapes, and text;
   
 - fill-opacity and stroke-opacity are supported in PDF output only
   (incompatible with PDF version 1.3).

5. Improvements in font handling:

 - TrueType collection fonts are supported;

 - OpenType fonts with CFF outlines are supported, with limitations:
   * in PostScript, only non-CID fonts are supported, and Level 3 is required;
   * subsetting of these fonts is not implemented.
   
 - Automatic slanting is possible, to create oblique and backslant 
   fonts from upright variants.
   
 - Basic support for ligaturization: a list of ligatures can be specified
   in the font configuration.
 

Other Improvements
==================

- XEP can work without write access to local file system. 
  When TMPDIR option is set to 'none', XEP stores all 
  intermediate files in memory. 

- Performance is optimized: memory consumption reduced, 
  table processing speeded up;

- Documentation rearranged and refactored. 
  
Interface Changes
=================

- Deprecated Java interfaces have been removed;

- FormatterImpl takes an optional extra parameter, 
  an XML document describing the configuration 
  (as a generic JAXP source);
    
- Validator now accepts generic JAXP source as input.

Bug fixes
=========

- Inline keep conditions work on rx:index-item elements.


XEP 3.8.4

Bug fixes
=========

- In PDF, multibyte Unicode strings in annotations are preserved 
  in linearization;

- In SVG, text spans with only one absolute coordinate don't disappear;
  
- In DOMInput Java code sample, namespace handling in DOM parser 
  turned on.


XEP 3.8.3

Bug fixes
=========

- Leaders in markers don't crash the formatter;

- TrueType font subsets that contain only spaces are compatible
  with Acrobat/Acrobat Reader.


XEP 3.8.2

Bug fixes
=========

- Markers referenced by elements with retrieve-boundary="document" get 
  correct inherited properties when retrieved from other page sequences, 
  and never disappear;

- Subscripts/superscript page number citations are correctly positioned;

- Footnotes from repeated table headers work correctly;

- Single token in 'font' shorthand does not disrupt parsing;

- SVG color names work in border shorthands;

- In PostScript, unmatched 'gsave' operator never appears in SVG images;

- In SVG, elliptic arcs don't disappear because of an arithmetic overflow;

- In XEP for Java, missing Java code sample re-added (Developer and Server 
  editions only);

- In XEP.NET Assistant, XSL FO files are not locked after processing;

- In XEP.NET command-line utility, '-valid' switch operates correctly.


XEP 3.8.1

Bug fixes
=========

- Floats made more robust;

- Width and height on fo:block elements is duly ignored;

- In XEP.NET, empty attributes and blank spaces outside the root node
  don't cause a null reference exception;

- In PDF generator, linearized PDFs are made compatible with Acrobat 5.x;
  
- Documentation corrected.


XEP 3.8

New features
============

- Support for kerning in XSL-FO and SVG;

- Blank pages caused by break properties are drawn using 'blank'
  page master; 'last' page master is never omitted from the sequence;

- Improved treatment of overflow conditions, support for 'overflow' property;

- New extension element: rx:page-number-citation-last;

- SVG color names can be used in XSL-FO property values;

- In the PDF output, page labels reflect the XSL-FO page numbering;

- Support for markers in SVG;

- A new sample added, showing how to apply an XSLT transformation
  to the output of the formatter (Server and Developer editions only);
  
- Added '-hosted' switch to the synopsis of XSLDriver command line 
  invocation, to permit its call from within a JVM (no System.exit()
  called on exit);

- .NET version can work with the intermediate XML representation.  

Improvements
============

- Reconsidered message caching policies in the logger: warnings 
  about missing fonts are issued once per font per document instance,
  all other warnings are not cached;

- Memory usage optimizations: XSLT preprocessing stage eliminated;

- Validation strictness level can be controlled;

- Representation of SVG text optimized; number of save/restore operations
  in PDF and PostScript significantly reduced;

- In PDF output, target file specifications for PDF-to-PDF links
  are styled in a way recognized by Adobe Acrobat 6.0;
  
- Performance of .NET version in debug mode significantly improved;

- In PostScript, data relative to images are wrapped in a pair of
  custom comments, to facilitate resource management and postprocessing.

Bug fixes
=========

- In right-to-left text, page numbers and page number citations
  are presented in correct reading order;
  
- Fixed occasional reversing of the last word in right-to-left texts;  

- .NET native XML/XSLT component is used in a conformant way.


XEP 3.7.8

Improvements
============

- In PostScript generator, page device setting is optimized
  to minimize the number of setpagedevice calls.
  
Bug fixes
=========

- In SVG, clip paths can be specified through CSS styling;

- In SVG, negative values for 'x' and 'y' attributes on <svg:use>
  elements are processed correctly;

- In SVG, CSS cascade rule application fixed: selectors applicable
  to a parent element don't leak to children anymore.


XEP 3.7.7
  
Bug fixes
=========

- SVG text positioning repaired (accidentally broken in 3.7.6);

- In PDF generator, temporary files created by linearization
  are erased at the end of processing.


XEP 3.7.6

Improvements
============

- Empty URL in 'src' attribute treated as 'none';

- In PDF generator, TrueType fonts with spaces in font name 
  don't destroy the output file;
  
- For PostScript safety, text with font-size='0' is omitted
  in PDF and PostScript output;
  
- Compression routines include a workaround for a bug in J#.NET 1.1.
  
Bug fixes
=========

- 'visibility' property in SVG works when specified through CSS styles;

- TIFFs with infinite strip size now work correctly;

- Rotated pages correctly process multicolumn layouts;

- Restored accented characters in the hyphenation file for Spanish; 
  
- Minor corrections to the documentation.


XEP 3.7.5

Improvements
============

- PDF parser made more robust.

Bug fixes
=========

- 'whitespace-treatment' property made inheritable;

- PDF parser now allows /Contents entry of the page dictionary
  to be an indirect object reference;
  
- Compatibility with MS JVM restored;
  
- Corrections to the documentation.


XEP 3.7.4

Improvements
============

- Lifted restriction on font names in etc/fonts.xml: 'name' 
  attribute does not need to coincide with the system 
  (PostScript) name for the font;

- TrueType font parser accepts name and version strings
  in MacRoman encoding (present in legacy TrueType fonts).

Bug fixes
=========

- Added optimization against a stack overflow when processing
  long tables without fo:table-row elements;
  
- Fixed a problem with instream foreign objects creeping from
  the preceding element to the subsequent (through improper
  caching).


XEP 3.7.3

Bug fixes
=========

- Japanese texts in PDF output are searchable in Adobe Acrobat 4 and 5;

- 'switch' functionality restored in SVG;

- an error message is issued when an outline is missing for a font
  that should be embedded;

- fixed positioning of floats attached to leading inlines in the line area.


XEP 3.7.2

Bug fixes
=========

- Lines terminated with explicit linefeeds now honor 'text-align-last';

- Table headers don't disappear in right-to-left writing mode;

- Right-to-left directionality is preserved inside inline elements;

- Subsetting of Type 1 fonts with non-Adobe embedded encoding does
  not lose diacritics from accented Latin characters;

- Acrobat CJK fonts in PDF output are searchable in Adobe Acrobat 4 and 5;

- Embedded Type 1 fonts in PostScript may not contain linebreaks 
  in the first 8 bytes of the encrypted body (for Distiller 
  compatibility);

- X-height and Cap-height font metric parameters are correctly extracted 
  from older TrueType fonts (with 'OS/2' table version 0 or 1).
  
Improvements
============

- Relaxed checks for 'text-align' values in the validator.


XEP 3.7.1

Improvements
============

- Warnings and errors are cached in the default logger:
  identical messages are displayed only once per document.

Bug fixes
=========

- Multi-page footnotes don't get trimmed;

- Repeatable header is correctly displayed when the first row has
  a smaller height than the header;
  
- license.txt files with Unix/Mac newlines work properly;

- For compatibility with previous XEP versions, setOption() method 
  in com.renderx.xep.gen.H4base class turned back to 'public' access.


XEP 3.7

New features
============

- New non-static Java API, better suitable for J2EE integration;

- Full support for table headers;

- Support for all values of 'white-space-treatment' property;

- 'show-destination' property is honored for the PDF-to-PDF links;

- CSS Level 1 styling is supported in SVG.

Improvements
============

- Subsetting for Type 1 fonts restored and improved;

- All glyphs in Type 1 fonts can be accessed, regardless 
  of the built-in encoding and character set;
    
- New logger used in the command-line driver;  
  
- Embedded AGL upgraded to version 2.0;

- External links in PostScript can produce PDF-to-PDF hyperlinks.

Bug fixes
=========

- PDF image files are closed after processing;

- Attributes from external namespaces are duly ignored.

  
XEP 3.6.4

Bug fixes
=========

- Java system variables without dots do not trigger spurious
  error messages;

- Very long table cells behave correctly in multi-column layouts;

- Validator accepts RenderX extensions for background image sizing
  on region elements;

- In SVG, stroke-dasharray="none" does not generate spurious error messages;
  
- PDF image parser correctly processes documents with resource 
  dictionary specified on intermediate leafs of the page tree;
  
- Brackets in annotation text are correctly escaped during
  linearization;

- Embedded PDF images don't get word- and letter-spacing 
  from the preceding text.


XEP 3.6.3

Improvements
============

- Added support for clipping by simple shapes in SVG.

Bug fixes
=========

- PFB fonts embedding in PostScript repaired;

- Name mangling for PostScript temporary files made more robust.


XEP 3.6.2

Bug fixes
=========

- Transformation attributes are honored on <svg:switch> elements;

- Improved TrueType font embedding algorithm for fixed-width fonts;

- Trial version works correctly when Times and Helvetica font families 
  are redefined to non-Adode fonts.  


XEP 3.6.1

Bug fixes
=========

- Footnote placed on an empty block at the end of a page sequence
  does not slip to the next page;

- It is possible to use 'resource:' URL schema in external system 
  entities inside XML configuration files;
  
- SVG support restored (accidentally broken in 3.6).


XEP 3.6

New features
============

- All resources (fonts, configuration files etc.) can be specified as URLs;

- 'data:' and 'resource:' URL schemas supported in all URLs;

- Bookmarks state (expanded/collapsed) can be controlled;

- Content type can be explicitly set for background images;

- Initial headers in tables can be suppressed;

- CMYK color can be used in SVG images;

- Initial destination can be specified with an extension attribute;

- Initial scale factor and viewer preferences can be specified with
  processing instructions;
 
- PDF generator can produce linearized (Web-optimized) PDF; 
 
- In PostScript, arbitrary page device settings can be specified 
  on a per-page basis.

Improvements
============

- CMYK JPEG files generated by Adobe Photoshop are processed consistently;

- Relative paths and xml:base enabled in SVG images;

- API expanded: the formatter and all standard back-ends now have
  initialization methods that take java.util.Properties as arguments.
  Format-specific property setting methods are now deprecated;
  
- Added an option to disable call to System.runFinalizersOnExit()
  during formatter initialization.

Bug fixes
=========

- Unused glyphs deleted from metrics for Adobe base fonts;

- Improved processing of accented characters in hyphenation tables;

- Repaired text-align problems when TrueType and non-TrueType fonts
  are mixed in font-family attribute;
  
- Output to stdout works again;

- Before-floats don't produce a spurious page break after them;

- Keep-together condition on table elements does not interfere with
  keep-with-next; table headers are never split from the body;
  
- Hot areas and destination targets are correctly positioned in
  right-to-left text;
  
- Strengthened synchronization to ensure thread-safety on 
  multi-CPU systems.


XEP 3.5.4

Improvements
============

- Named destination placement optimized.

Bug fixes
=========

- Explicit file:// URLs now work correctly in the PDF generator.


XEP 3.5.3

Improvements
============

- Footnote placement algorithm rewritten: long footnotes are handled
  better, keep/orphan/widow restrictions on footnotes are honored
  consistently;

- Improved placement of dot-filled and pattern-filled leaders: 
  constraints permitting, the length is adjusted to the nearest
  multiple of pattern width;
  
- Number of calls to EventLogger.logger() is significantly reduced
  to achieve better performance in multi-CPU installations.

Bug fixes
=========

- URL escaping for file URLs revisited, and reduced to a necessary 
  minimum for the sake of interoperability with older versions of
  Java and servlet engines;

- Image caching improved: virtual servers are taken in consideration
  when comparing URLs;
  
- Keep conditions handling on table rows further improved;

- Validator accepts <space> data type for letter-spacing and word-spacing;

- Spaces are removed from font names embedded in PDF or PostScript;

- Hot areas placement in PostScript back-end repaired;

- Non-ASCII symbols in internal destinations are correctly processed
  in PostScript;
  
- Processing instruction functionality in PDF generator restored.


XEP 3.5.2

Bug fixes
=========

- Keep-together on rows with cells spanning multiple columns are handled 
  correctly;
  
- Multiple references to the same missing internal destination are 
  reported once per document.


XEP 3.5.1

Improvements
============

- Under Windows, UNC paths may be used.

Bug fixes
=========

- Special symbols in file URLs are correctly unescaped from x-www-urlencode.
- Restored loading of remote SVG images.


XEP 3.5

New features
============

- A subset of SVG supported for external and embedded vector graphics;

- Support for catalogs: external SAX entity resolver and 
  JAXP URI resolver made configurable.

Improvements
============

- PostScript back-end redesigned;

- Image processing in PostScript optimized: images are inserted once
  and referenced through forms;

- Documentation markup checked; documentation switched to DocBook 
  stylesheets from Norman Walsh.

Bug fixes
=========

- Fixed a bug that caused XEP to crash on floats not preceded by spaces.


XEP 3.4.2

Bug fixes
=========

- Big-endian TIFFs are parsed correctly.


XEP 3.4.1

Improvements
============

- Bookmarks and link anchors are generated for missing internal destinations.

Bug fixes
=========

- /Parent is correctly specified for all bookmark entries.

XEP 3.4

New features
============

- rx:index extended to support the following:
  * explicit range markup, with rx:begin-index-range/rx:end-index-range;
  * independent styling of individual page index entries, with rx:index-item;
  * backlinking to index term locations, with 'link-back' property.
  
- In PDF generator, file URLs in external-destination are converted 
  to PDF-to-PDF links;
  
- PDF generator produces named destinations for link targets in the document:
  parts of PDF document can be addressed from outside as named fragments.

- by default, footnotes are now placed into a page-wide area as prescribed
  by the XSL specification. Column-wide footnotes can be achieved by 
  setting PAGEWIDE_FOOTNOTES option to 'false';
  
- XML output producer enhanced: it can incorporate images in the body
  of the output file.
  
Bug fixes
=========

- Indexed-color PNG images with transparency now work properly.

Other changes
=============

- XML output producer class renamed to H4XEP.


XEP 3.3.1

New features
============

- xml:base attribute can be used to specify base for relative URIs;
  
- formatter can be accessed through org.xml.sax.ContentHandler interface;

- new Java samples added;

- documentation updated.

Bug fixes
=========

- non-breaking spaces don't disrupt text justification.

Other changes
=============

- validator issues a warning for non-zero padding and border specifiers 
  on region elements - fo:region-body, fo:region-before, fo:region-after,
  fo:region-start, fo:region-end. (This warning is disabled in 
  XEP2-compatible mode).


XEP 3.3

New features
============

- Arabic glyph shaping is implemented;

- relative-align is supported for fo:list-item;

- keep-with-next/previous on table rows and cells is implemented consistently;

- the command line interface (com.renderx.xep.XSLDriver) has been
  redesigned; a consistent command-line syntax is used for all processing
  modes and supports use of XEP as a pipe;

- XEP2_COMPATIBLE_MODE is set to false by default; XEP strictly follows 
  inheritance rules of the Recommendation.

Bug fixes
=========

- PDF images on rotated pages are properly oriented in the resulting document.

XEP 3.2.3

Bug fixes
=========

- bounding box is set correctly for embedded PDF images.

XEP 3.2.2

Bug fixes
=========

- 'text-indent' works properly with mixed content;
- no-break space (Unicode 00A0) is preserved (not collapsed) 
  in the output;
- uri-specifications with special characters are processed 
  correctly;
- links to list items and table rows point to their before-edges;
- PDF output is adjusted for printing on PostScript printers 
  from Adobe Acrobat version 4;
- AFM parser does not crash on malformed AFMs;
- TrueType metric handling improved;
- PDF embedding robustness increased.

XEP 3.2.1

Bug fixes
=========

- parameters in MIME type specifiers are duly ignored;

- marker issues resolved: markers recognized as children
  of table and list elements;

- scripts for Windows adapted for Windows 95/98/Me;

- keep conditions honored on footnotes;

- specifying different locations for configuration files
  now works correctly;
  
- hyphenation algorithm improved;  

- documentation proof-read and cleaned up.


Improvements
============

- Added extra validity checks to PNG parser, as a workaround
  for Alchemy-generated PNG images with incorrect transparency;

- Added protection against an attempt to embed OpenType/CFF fonts.


XEP 3.2.0

New features
============

- 'text-shadow' attribute supported, except for blurred shadows;

- PDF generator can embed PDF images;

- options for PDF and PostScript can be specified via processing 
  instructions;

- added an option to disable RenderX proprietary interpretation 
  of inheritance;

- absolute-position="absolute" supported.

Improvements
============
  
- added a switch to display XEP version to com.renderx.xep.Driver 
  and com.renderx.xep.XSLDriver command-line interfaces;
  
- all dependence on AWT has been removed: no more limitations 
  in functionality under MS JVM or console-only Unix/Linux.
  
Bug fixes
=========

- margin value of 'auto' recognized;

- 'number-columns-spanned' does not leak from fo:table-column 
  to cells in that column;
  
- very small GIFs (less than 200 bytes with 64 colors or less)
  are processed correctly;
  
- various fixes to improve code robustness.


XEP 3.17

Bug fixes
=========

- A fix for Microsoft Java implementation:
  images in PostScript output are duly filtered through ASCII85 
  (added protection against bug in java.io.FilterOutputStream).

XEP 3.16

Bug fixes
=========

- XEP now works correctly with Microsoft JVM: resource loading improved;
- fixed single-color transparency processing in PNG;
- improved signature checks for JPEG files.


XEP 3.15

Bug fixes
=========

- Page size is set correctly in Postscript output


XEP 3.14

Bug fixes
=========

- several minor bugfixes


XEP 3.13

Bug fixes
=========

- markers restored (accidentally broken in 3.12);

- additional optimization of lists;

- setpagedevice control removed from PostScript for a while;

- subsetting disabled for Type1 fonts (because error-prone);

- linefeeds in 'title' meta field don't destroy PostScript code;

- API documentation fixed.


XEP 3.12

Bug fixes
=========

- repaired indents on list items (destroyed in 3.10).


XEP 3.11

Bug fixes
=========

- span property now works correctly on block-containers;

- minor fixes in documentation.


XEP 3.10

New features
============

- when multiple font families are specified, font selection
  looks for available glyphs;

- implemented viewport size ('width' and 'height') attributes
  on images; added 'scale-to-fit' value to 'content-width'
  and 'content-height';

- in addition to RGB, document colors can be specified
  in grayscale and CMYK color spaces (via predefined
  profile names in rgb-icc() function - #Grayscale and #CMYK);

- added a universal command line driver, com.renderx.xep.XSLDriver.


Bug fixes
=========

- fixed interpretation of 'precedence' on side regions;

- refined treatment of reference-orientation on page masters;

- improved processing of spaces on list items.


XEP 3.04

Bug fixes
=========

- fixed keep condition processing on blocks with big inline images
  (it could force an unexpected line break).

XEP 3.03

Bug fixes
=========

- keeps and breaks now work correctly inside nested tables;

- com.renderx.xep.BASE property put back into place (setting
  base URL for documents with no source SystemIDs).


XEP 3.02

Bug fixes
=========

- hyperlinks now work correctly on pages with non-zero
  reference-orientation;

- block-progression-dimension of rotated block-containers
  is calculated more precisely.


XEP 3.0

New XSL Formatting Objects and Properties
=========================================

1. Full implementation of fo:block-container. Reference-orientation and
   writing-mode properties now work on block containers regardless
   of their position. You can now rotate text in the flow and inside
   table cells.

2. Side floats: left and right floats are supported. Additionally,
   'float' attribute can assume values of "inside" and "outside",
   to align it with 'text-align'. (Note that these additional values
   are absent in CSS and missing in the XSL Rec; handle with care).

3. Areas spanned across columns: span="all" is fully supported. There
   is also an rx:flow-section extension element, with a more general
   functionality.

4. Last page recognized in conditional masters: page-position="last"
   now works on fo:conditional-page-master-reference.

5. Breaks fully implemented: "page" value for break-before and break-after
   now works correctly in multi-column layouts.

6. Support for right-to-left writing: writing-mode="rl-tb" is now
   supported. Some bidirectionality is implemented; see spec.dbx
   for details and limitations. Explicit direction override through
   fo:bidi-override is implemented.

7. Support for font-stretch attribute: text can be scaled horizontally.
       
8. Improved support for expressions: expression support redesigned 
   and made more reliable; from-table-column() function implemented. 
   See specs.dbx about limitations on expressions.

9. Support for relative-align. relative-align on fo:list-item is supported.


New Extensions to XSL Recommendation
====================================

1. rx:page-index

Extension to build page number sequences for indices. Merges repeated
page numbers and builds ranges.

2. rx:flow-section

A generalization of 'span' attribute: partitions a flow into sections
with different column counts. Using this extension, it is possible
to mix e.g. two-column and three-column fragments on the same page.

3. rx:pinpoint

Conveys data from the source file to the XML output. Ignored by backends
but visible when filtering output XML structure. Can be used to build
complex postprocessing solutions, e.g. revision bars.


Architectural Improvements
==========================

1. Validator

A new XSLT-based validator catches more errors than the old DTD, and
intercepts any input (not just documents read from a byte stream).
For instance, output from an XSLT engine can now be validated.

There is also a command-line interface to the validator:
com.renderx.xep.Validator takes a sequence of file names as arguments,
and validates them one by one.

2. SAX2 and JAXP

All interfaces (both input and output) are now namespace-aware,
and use SAX2 / DOM Level 2. We have also worked on JAXP pluggability:
if there is a JAXP-compliant parser factory somewhere in the path,
XEP finds it and gets parsers from there (unless explicitly instructed
to use a specific parser).

There is a class to facilitate working with JAXP transformers:
com.renderx.xep.JAXPDriver acts as a transformer that produces
PDF/PostScript from XML+XSL. It also has a command-line interface.
Running the class with no arguments displays the synopsis.

3. New parser

Parser component rewritten from scratch, to optimize memory usage.

4. Performance on table processing

Long tables are now processed up to 5 times faster than in the
previous version. One of the major performance bottlenecks
is therefore eliminated.

5. Optimized graphics

Processing of principal graphic formats has been revised to use "lazy"
algorithms as much as possible, avoiding full image decompression.
Memory penalty for using big images has dropped drastically.

Because of the Unisys LZW patent problem, additional limitations
are imposed on supported GIF and TIFF flavors. See spec.dbx for details.
