- Compute the height of already handled rows progressively in TableStepper
- Give this information to the ActiveCell constructor. This allows to:
- avoid passing the row-group to the constructor
- avoid re-computing it for each cell starting on the current row
Fixes in the steps computation:
- directly include the penalties of the cell contents in the step computation; no longer use a nestedPenaltyLength
- compute the real remaining length, i.e., discarding all the glues and penalties after the candidate break
- if step + maxRemainingLength < totalLength, a glue must be added to hold the additional length when the row group is not broken
Chris Bowditch [Mon, 9 Jul 2007 16:08:55 +0000 (16:08 +0000)]
In case where SAX Exception is thrown by Area Tree Parser when parsing Area Tree XML, error is logged but Exception should be passed back up to allow a calling Application to abort processing.
Use a list of active cells for computing steps, continued:
- remove the need for backupWidth
- handle the iteration over the cell's Knuth element inside the active cell itself
- improve the computation of the remaining height (a testcase needed to be updated; no visual change, only the values for the boxes/penalties which lead to the same result)
Partial application of the patch in Bugzilla 41044:
* addition of a generic PropertyCache to be used by all Property
types that can be safely canonicalized
* modified EnumProperty, StringProperty, NumberProperty, EnumNumber
and FixedLength to make use of the cache infrastructure
Bugzilla 41656:
Refactoring in the fo package:
-> removal of the childNodes instance member in fop.fo.FObj
-> addition of a firstChild instance member in fop.fo.FObj
-> addition of a siblings instance member in fop.fo.FONode
-> addition of a FONodeIterator interface in FONode + corresponding implementation in FObj
-> changed implementations of FObj.addChildNode(), .removeChild() and .getChildNodes()
Bugzilla 41656
Refactoring in the fo package:
-> removal of the childNodes instance member in fop.fo.FObj
-> addition of a firstChild instance member in fop.fo.FObj
-> addition of a siblings instance member in fop.fo.FONode
-> addition of a FONodeIterator interface in FONode + corresponding implementation in FObj
-> changed implementations of FObj.addChildNode(), .removeChild() and .getChildNodes()
Add a testcase for a bug in TableStepper spotted during the refactoring. The border-before of the primary grid unit was taken into account instead of the whole cell border. If the cell is spanning over two columns and the border-before for the second grid unit is bigger, this was leading to a wrong step computation.
Simon Pepping [Fri, 29 Jun 2007 17:39:01 +0000 (17:39 +0000)]
Applied fix suggested by Arno Peters to the fop shell script. This fix
makes the script work with a FOP_HOME path containing spaces. This
solves bug 42616.
Jeremias Maerki [Fri, 29 Jun 2007 12:46:14 +0000 (12:46 +0000)]
Bugzilla #42278:
Refactoring of color map cache and uri/fo resolution from FopFactory
Submitted by: Adrian Cumiskey <fop-dev@cumiskey.com>
Changes in addition to the patch by jeremias:
- Moved the color map cache to the util package so it doesn't clutter the API (apps) package.
- Factored out the data URL resolution into its own URIResolver class which can now be used separately.
- Added a utility class for generating RFC2397 data URLs.
- Added a unit test for data URL handling.
Additional testcases for tables with spanning cells and collapsing-border model.
TODO the checks in table_border-collapse_collapse_spans_2.xml need to updated once bugs #42768 and #42769 are fixed
Jeremias Maerki [Fri, 22 Jun 2007 13:34:37 +0000 (13:34 +0000)]
Updated PDF/A-1b support according to ISO-19005-1:2005/Cor.1:2007.
Changed test.xconf to match the triplet generated by auto-font-detection (Gladiator is bold) and adjusted PDF/A test files accordingly.
Updated XML Graphics Commons to latest snapshot to include the PDF/A fixes.
Added a unit test for the synchronization of PDF Info and XMP metadata as described in PDF/A-1.
Bug #42476:
- fix NPE in XMLReader when no handler is found for the image
- prevent SVGReader from closing the input stream if the image actually isn't SVG
- reduce log level in SVGReader and XMLReader to avoid "false positive" (read error reported whereas the image format actually isn't recognized). This may hide regular I/O errors to the end-user, but I assume this will be rare enough compared to the annoyance of such messages when third-party plugins are used.
Patch submitted by Max Berger (max.at.berger.name)
Jeremias Maerki [Mon, 28 May 2007 14:31:24 +0000 (14:31 +0000)]
Bugzilla #41831:
- Add support font auto-detection (easier font configuration) including a font cache to speed up the auto-detection process.
- Refactoring of the configuration code: All Avalon configuration stuff is extracted into separate "Configurator" classes.
- Refactoring of the FOURIResolver.
Submitted by: Adrian Cumiskey <fop-dev.at.cumiskey.com>
Changes to the patch by jeremias during the review:
- Font cache simplified (Java object serialization instead of XML), functionality fixed and moved to the fonts.package.
- Relocated default cache file location to user directory.
- Fixed the font configuration for PDFDocumentGraphics2D/PDFTranscoder that got lost with the patch.
- Fixed a problem with having a non-file URL as font base URL.
- Simplified RendererContextInfo stuff to make it easier to understand.
- Fixed handling of Type 1 fonts in auto-detection.
- Reduced verbosity of font-related log output.
- Updated Jakarta Commons IO to version 1.3.1 (the patch depends on it)
- Various javadocs improvements
Jeremias Maerki [Mon, 21 May 2007 07:59:05 +0000 (07:59 +0000)]
Bugzilla #42406:
Use source resolution setting for bitmap images which don't provide their own resolution.
Submitted by: Hussein Shafie <hussein.at.xmlmind.com>
Jeremias Maerki [Mon, 21 May 2007 07:32:46 +0000 (07:32 +0000)]
Bugzilla #42109:
Fixed the rendering of zero-width spaces for certain fonts by not generating them into the area tree.
Submitted by: Paul Vinkenoog <paul.at.vinkenoog.nl>
Jeremias Maerki [Wed, 16 May 2007 09:54:34 +0000 (09:54 +0000)]
Extracted a little bit of the multi-output handling code from PNGRenderer in to a new class (MultiFileRenderingUtil) for reuse in the SVGRenderer.
Minimal SVG rendering support using Batik's SVGGraphics2D
Luca Furini [Tue, 15 May 2007 15:11:34 +0000 (15:11 +0000)]
Fixing a problem with disappearing footnotes inside inlines when hyphenation is enabled, and with disappearing footnotes whose inline child can be hyphenated (quite unlikely, but you never know ...).
As the FootnoteLM was completely "bypassed", it could not add the anchor in the getChangedKnuthElement() phase.
Testcase updated with an example of the "hyphenated inline child" case.
Note by jeremias: I haven't found any information which encoding/charset should be used with basic authentication. RFC 2617 doesn't seem to address that. The behaviour for characters outside the US-ASCII (7bit) charset may not be as expected.
Jeremias Maerki [Mon, 7 May 2007 14:30:23 +0000 (14:30 +0000)]
Removed newly introduced dependency from the PDF library to the area tree.
Removed PDFDocument.setHasDestinations() (PDFDocument knows that already).
Started to add some generic PDF data structures (array, dictionary).
Jeremias Maerki [Fri, 4 May 2007 07:45:03 +0000 (07:45 +0000)]
Avoid dependency on FOP 0.20.5 from the Batik 1.6 transcoder.
Adjust avalon-framework-impl to an actually available version.
Submitted by: Lars Trieloff <lars.trieloff.at.mindquarry.com>
Bugfixes:
- NPE when break-before is set on the first row of a table with headers
- NPE when break-after is set on the last row of a table with headers or footers
- Invalid break class exception when break-after is set on the last block of a cell in the last row of a table
- double page break when break-before is set both on a table and its first row
Fix the computation of cells' IPD when they contain children with forced breaks.
In such cases TableCellLM.getNextKnuthElements was called several times, and thus the borders/paddings of the cell were substracted several times from the IPD.