Jeremias Maerki [Mon, 6 Aug 2007 14:03:00 +0000 (14:03 +0000)]
Preparations for supporting "PDF in PDF" (PDF file as "src" attribute for fo:external-graphic).
Changes in the PDF library:
- Support all basic PDF objects as generic classes.
- Reworked some of the PDF classes to use the new generic classes instead of writing to StringBuffers everywhere (less code, less error-prone in the long run).
- Finished Form XObject support.
- Manage Image XObjects together with Form XObjects in PDFDocument
- Tweaked the filters so externally applied filters can more easily be handled.
Changes to image package:
- Added a very simple and temporary dynamic registration for image implementations (in order to plug in external image implementations)
("temporary" since the image package redesign is still on the task list for this year)
Changes to the PDF Renderer:
- Added a PDFImageHandler interface which can be used to create arbitrary XObjects (in the case of PDF-in-PDF: Form XObjects).
Add in status.xml the noticeable changes I made in the last couple of months:
- support for conditional spaces in tables
- fix several keeps and breaks issues in tables
Plus add importance="high" to the font auto-detection addition
AFP Renderer: Bugfix for 1 bit images where the width is not a multiple of 8.
Essentially, I rewrote convertToGrayScaleImage() to properly padding at the end of each scanline if necessary.
Chris Bowditch [Tue, 31 Jul 2007 07:54:02 +0000 (07:54 +0000)]
Bugzilla #42956:
AFP Renderer - No Operation Extension.
yet another missing file! The documentation!
Submitted by: Adrian Cumiskey <dev.at.cumiskey.com>
Bugzilla #42956:
AFP Renderer - No Operation Extension.
Added missing file (including the bugfix for the right encoding).
Submitted by: Adrian Cumiskey <dev.at.cumiskey.com>
Manuel Mall [Sun, 22 Jul 2007 03:08:14 +0000 (03:08 +0000)]
Changed my mind on handling of width calculation for zero width spaces and moved it into the Font class where other similar cases are already dealt with
Slight correction:
- make NumberProperty, EnumProperty, EnumNumber and StringProperty final, so instanceof suffices in the check for equality
- instead of subclassing NumberProperty, make EnumNumber implement the Numeric interface
* Javadoc update: use {@inheritDoc} instead of @see where applicable, removal of some @author tags
* Additional code cleanup: removal of unused imports (mainly in the fo.flow package)
- 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