Introduced IFContext to provide access to foreign attributes (as discussed on fop-dev).
Removed the foreign attributes map from the drawImage methods as a consequence.
Added support for foreign attributes on the page (PCL's paper-source and duplex-mode extensions).
Fixed a couple of bugs parsing the document navigation elements.
Build-time test suite now runs through.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign@730740 13f79535-47bb-0310-9956-ffa450edef68
Added getUserAgent() to IFDocumentHandler (implemented by all implementations already).
Full image support for PSPainter.
PostScript output now uses the ImageHandler facility (IF and renderer) for both inline (ImageHandler interface) and form image production (PSImageHandler interface). No more hard-coded image flavor list.
Resource optimization extended so images that are only used once are inlined to lower memory requirements in the PostScript VM.
Added test cases using Commons' DSC parser to verify the new functionality.
Added IFDocumentHandler override possibility in FOUserAgent (just like for FOEventHandler and Renderer).
Subject support for PDF output.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign@727405 13f79535-47bb-0310-9956-ffa450edef68
Added page master name to IFDocumentHandler.startPage() method.
Wired together the support for out-of-order rendering (only applicable to PDF) when the intermediate format is not used (in-memory rendering).
Fixed a logical bug in IFRenderer that caused some unneeded code. Glyph adjustments (kerning, letter/word space...) were not done right. All painters fixed/adjusted accordingly.
Started implementation of the PostScript painter: Supports only text and filled rectangles so far. Work in progress...
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign@719051 13f79535-47bb-0310-9956-ffa450edef68
Making conversion hints available to ImageHandler implementations, too.
(Re-)implemented Graphics2D support for PCL. It can be disabled by fox:conversion-mode="bitmap" if necessary.
Fixed a bug with non-uniform image scaling when encoding bitmap images.
Commented some code that did not reliably convert color images to grayscale. The (probably slower) fallback code is used instead.
Some performance improvements for text painting using bitmaps when <rendering>speed<rendering> is selected.
Removed the RenderingContext interface from RendererContext since it's not used.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign@711269 13f79535-47bb-0310-9956-ffa450edef68
Re-Implemented "quality" rendering mode (painting borders and rules using bitmaps).
Added a new rendering mode "bitmap" (in addition to "speed" and "bitmap") that uses Java2DPainter for the whole page and paints a single bitmap (much like most PCL drivers operate). Quality: "speed" < "quality" < "bitmap", Performance: "speed" > "quality" > "bitmap" (at high page complexity "bitmap" might actually be better), File Size: "speed" < "quality" < "bitmap"
Increased bitmap encoding performance by up to 100% (by optimizing the Java code and by supporting the "zeroed row" PCL command)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign@709119 13f79535-47bb-0310-9956-ffa450edef68
Moved IFState instance variable into AbstractIFPainter as all implementations use it.
Refactored default image handling methods in AbstractIFPainter a bit to make them more universal.
Fixed a small mistake in Java2DImageHandlerRenderedImage.
Added configurator code for new PCL implementation.
Fixed smaller issues in PCLGenerator.
Added support for painting images (e-g and i-f-o) as bitmaps (depends on rev 707329 in XML Graphics Commons).
Added support for text with custom fonts to be painted as bitmaps.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign@707331 13f79535-47bb-0310-9956-ffa450edef68
Split IFPainter into IFDocumentHandler and IFPainter. This makes the implementation classes smaller, better allows to isolate the painting parts and helps with formats that generate one object per page (SVG, PNG etc.).
Added ImageHandlerFactory to FopFactory.
Started TIFF output in order to develop the Java2DPainter that will be needed for certain tasks when generating PCL.
Tweaked the way XML is generated for IF and SVG output.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign@699813 13f79535-47bb-0310-9956-ffa450edef68
First steps at unified image handling as proposed on http://wiki.apache.org/xmlgraphics-fop/ImageSupport/ImageHandler. This shall serve as a preview to motivate early feedback if anyone is interested.
Basic external-graphic support now available for PDF and SVG painters (for PDF: RenderedImage, SVG, JPEG, CCITT and Java2D, for SVG: embedded SVG and RFC2397 data URLs containing PNG and JPEG images)
Change to IFPainter: added support for foreign attributes for the "image" tag.
PDFContentGenerator introduced to hold the most important objects for PDF generation (unification for renderer and painter).
Re-routed most image handling through the new image handling code (not fully done, yet, some code duplication remains).
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign@682757 13f79535-47bb-0310-9956-ffa450edef68
Renamed "iform" package to "intermediate" (iform was too cryptic for my taste)
Changed IFRenderer to work against the IFPainter interface.
Started IFPainter implementations for the IF format (IFSerializer), SVG 1.1 and SVG Print. They currently support very simple FOs only (like examples/fo/basic/simple.fo).
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/Temp_AreaTreeNewDesign@677204 13f79535-47bb-0310-9956-ffa450edef68
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
Moved CLI to its own package. New main class is org.apache.fop.cli.Main.
InputHandler is not passed through the FOUserAgent anymore. IMO it doesn't belong there. Instead I defined an interface "Renderable" in the AWT preview that InputHandler implements. This is used exclusively for reloading the document inside the preview dialog.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@239409 13f79535-47bb-0310-9956-ffa450edef68
Element list logging facility resurrected as an ElementListObserver (see LoggingElementListObserver).
DebugHelper registers that logging facility. Add a call to your own test apps to log element lists.
Added an additional check implementation for the layout engine checker which allows checking of Knuth element lists using the ElementListObserver. (Usage example: See keep-together2.xml)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@198670 13f79535-47bb-0310-9956-ffa450edef68
Initial version of a layout engine testing subsystem.
Uses the area tree XML to check the output of the layout engine.
Provides a TestSuite for use with JUnit.
Individual test cases are defined in XML files.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@198225 13f79535-47bb-0310-9956-ffa450edef68
The different length properties all implement a Length interface
and all clients of the property subsystem must use the Length interface
when retrieving lengths.
The two different numerics (absolute and relative) both implement a
Numeric interface and all property calculations are done in terms of
the Numeric interface.
Lengths can be cast to numeric and can thus participate in expresions and
numerics can be cast to length (when dimension is 1) and can thus be used
as a length by the clients.
The call to Length.getValue() will cause relative lengths to be resolved
against their base length, and care must be taken to ensure that
getLength() is only called after all baselength has been assigned to the
FO elements.
PR: 26778 (first part).
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@197380 13f79535-47bb-0310-9956-ffa450edef68