Fixed handling for CCITT Group 4 images with fill order 2.
Submitted by: Gilles Beaugeais <gbeaugeais.at.voila.fr>
JM: Patch slightly modified/streamlined.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@424979 13f79535-47bb-0310-9956-ffa450edef68
Fixed two memory-leaks in image handling (ImageFactory and ExternalGraphic). The image cache is finally working properly. Currently implemented without the cleanup thread as done by Batik.
Added ImageIO provider for handling PNG in addition to the internal codec. ImageIO proved to be faster and less memory-intensive for PNGs. ImageIO takes precedence of the internal codec.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@424349 13f79535-47bb-0310-9956-ffa450edef68
Added initial support for PDF/X-3:2003 (ISO 15930-6:2003(E)).
Fixed bugs in PDF/A support: Transparency is now switched off and the CIDSet object is generated for CID fonts.
PDF/A and PDF/X are now "profiles" (see PDFProfile) which are used to control the allowed, required and forbidden features in PDF. PDF/A-1b and PDF/X-3:2003 can both be activated simultaneously as they are compatible.
For PDF/X, color handling has been improved a little (PDFColorSpace is now an interface, the old PDFColorSpace is now PDFDeviceColorSpace) and most importantly, the "DefaultRGB" color space is now mapped to the sRGB color space (for all colors in DeviceRGB) which ensures that all sRGB colors from XSL-FO are also sRGB colors in PDF which wasn't necessarily the case before.
For PDF/X, added support for a custom, non-sRGB output profile because PDF/X requires a "Output Device Profile" (which sRGB is not).
ICC profiles are now shared/cached among images.
Added support for fox:conversion-mode="bitmap" in the PDFRenderer to handle SVGs with transparency when transparency is forbidden (PDF/X and PDF/A). Only drawback: the image is not combined with the background. An opaque bitmap with a white background is generated.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@414272 13f79535-47bb-0310-9956-ffa450edef68
Bugfix: The combination of hyphenation and kerning resulted in slightly ragged right ends for right-aligned and justified text. The kerning values were not correctly placed and summed up for hyphenation and no-hyphenation conditions.
Bugfix: tables nested in inline elements caused a NullPointerException.
Furthermore, keep-together handling was not appropriate when a table is nested in an inline (fixes a ClassCastException).
Finally, TableContentPosition did not indicate that it generates area which made them be ignored by the InlineLM.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@406596 13f79535-47bb-0310-9956-ffa450edef68
The default sRGB color profile provided by the Java class library is no longer embedded if it is encountered. This should reduce the PDF size considerably.
Bugfix: Sections with span="all" lead to overlapping text if spanning multiple pages.
Tables and list produced an illegal value for break class on normal breaks.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@404751 13f79535-47bb-0310-9956-ffa450edef68
Content in block-containers makes better use of shrink to fit content vertically into the available area. This can be used indirectly to justify content vertically in a block-container.
PageBreakingAlgorithm now writes to a different logger than its base class. Makes debugging easier.
Some minor logging improvements to improve clarity.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@396915 13f79535-47bb-0310-9956-ffa450edef68
Bugfix: Fixed ClassCastException when retrieve-marker is used as a direct child if static-content in which case leading and trailing white space is not properly removed.
Note: This is probably more a hack than anything else, but it fixes the problem for now. If anyone has a better solution, please feel free to improve.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@396256 13f79535-47bb-0310-9956-ffa450edef68
Initial support for page-number-citation-last (XSL 1.1). Works without problems only for page-sequence so far.
Submitted by: Pierre-Henri Kraus <phkraus.at.skynet.be>
Modifications to the patch by jeremias during review:
- Tab character removed
- Some style fixes and javadoc enhancements
- Renamed some methods in AreaTreeHandler to some more speaking names
- Changed the ..._basic.xml testcase so it shows a remaining problem: Forward references are not properly resolved, yet.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@396243 13f79535-47bb-0310-9956-ffa450edef68
Bugfix: The generation of the PDF "d" (setdash) command was assuming that only integer values can be used but that isn't the case. Dash patterns PDFGraphics2D would be wrong in the process.
Bugfix: Fixed a division by zero problem in TTFReader popping up with arialuni.ttf.
Improved the detection of the capHeight and xHeight font metric values for TrueType fonts. Fonts that contain a version 3.0 PostScript table don't contain unicode glyph names. Without an xHeight value, super- and subscript does not work in FOP.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@393410 13f79535-47bb-0310-9956-ffa450edef68
Fixed various white space (non)removal issues during line building. white-space-treatment is now supported properly especially for the "preserve" case.
Made the loading of user-specified hyphenation patterns usable again and plugged it into URI resolution.
Backwards-compatibility should be maintained.
PatternParser now uses JAXP to get the SAX parser.
Moved the hyphenation pattern cache into a separate class so I can easily plug it into FopFactory later instead of having static variables.
Added serialVersionUID to HyphenationTree. Necessary because the class signature changed.
FOURIResolver does not complain about "file not found" on the log anymore since this should be done by the caller. Until now, this resulted in two log messages about the same problem on the log. "File not found" is still reported but only on level "debug" which might be helpful when tracking down a problem, but at least it's not a "WARNING" anymore.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@387477 13f79535-47bb-0310-9956-ffa450edef68
Certain filter combinations in PDF could lead to invalid PDFs. DecodeParams were not properly handled.
Default filter for XMP metadata set to NullFilter as XMP metadata should always be embedded as clear-text so non-PDF-aware XMP processors can extract the metadata.
Default filter for DCT/JPEG- and CCITT/TIFF-encoded images set to NullFilter because these two compression methods already do a good job. An additional flate filter (as was applied before due to the single default) helps a just little but also adds processing time. If anyone wants to squeeze every possible bit out of the PDF you can use the following in the user configuration:
<filterList type="tiff">
<value>flate</value>
</filterList>
<filterList type="jpeg">
<value>flate</value>
</filterList>
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@387213 13f79535-47bb-0310-9956-ffa450edef68
Bugfix: CCITT Group 4 encoded TIFF images were not properly embedded in PDF files. FopPDFImage always used the bits/pixel and color space of the original image although our image adapter mostly convert all images to 24bit RGB. One day, we will need to improve the image handling.
Note: letter-spacing is still implemented as before. Fixing this cannot be done without looking at space resolution as a whole on inline level.
The Character area tree object is now deprecated. Normal Text objects should be used to keep renderers simpler.
Introduced FontResolver interface to remove the dependency of FOUserAgent into the font package.
Added kerning information to the base14 fonts, Helvetica and Times. By default it is not used to keep the status-quo. Enable base14 kerning through the FOUserAgent (FopFactory after the API finalization).
Restored the production of EPS images in PDF output as PostScript XObjects.
Restored functionality for a more compact format for the area tree renderer to save space.
LayoutEngineTester slightly changed to allow for configuration values from the XML file. For now, only enabling base14 kerning is supported.
Removed duplicate offset variable in SpaceArea.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@386327 13f79535-47bb-0310-9956-ffa450edef68
Bugfix: Fixed a problem with certain TrueType fonts which are missing the "PCLT" table, where a baseline-shift="sub" had no effect due to a missing x-height value.
Initial support for XMP metadata (PDF 1.4) under fo:declarations. Both xmpmeta and RDF elements can be used as root elements for XMP metadata.
Extracted DOM2SAX functionality from XMLXMLHandler into utility class since it is now reused elsewhere.
New DOMBuilderContentHandlerFactory is used to create ContentHandlers that build generic DOMs.
New DelegatingContentHandler is a convenience base class modelled after XMLFilterImpl but as passive SAX receiver. It is used by DOMBuilderContentHandlerFactory.
Refactored FOTreeBuilder. FO tree building is now in a special ContentHandler which can be replaced temporarily when handling foreign XML like SVG or XMP. Extension Elements wanting the set their own ContentHandlers (instead of using the standard FO tree building mechanism) return a non-null value in getContentHandlerFactory(). The old mechanism is still supported (MathML, Plan and Barcode4J still use that). However, SVG support is changed to use a ContentHandlerFactory.
Extension elements for xmpmeta and RDF elements making use of the new DOM build-up using ContentHandlerFactory.
XMP metadata is passed to the renderer as ExtensionAttachment to the document. Only PDFRenderer uses the XMP extension attachment at this time.
The PDFRenderer automatically builds XMP metadata based on the basic metadata information in the PDFInfo object if no explicit XMP metadata has been added to the XSL-FO document.
XMP metadata merging is not implemented because this would involve a more sophisticated XMP infrastructure. That also means that XMP metadata is not validated. It's passed into the PDF as is.
The PDF library now provides the PDFMetadata class to embed XMP metadata in PDFs version >=1.4. stream contents use a special filter list which is initially empty, so non-PDF-aware XMP readers can extract (and optionally modify) the XMP metadata.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@378482 13f79535-47bb-0310-9956-ffa450edef68
Fix for bug 38507: the elements representing a non-breaking space were not always correct, sometimes allowing a break.
This also solves another bug concerning the incorrect suppression of a nbsp at the beginning of a line.
A bit of clean-up in TextLayoutManager
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@375585 13f79535-47bb-0310-9956-ffa450edef68