NOTE: API changes in a backwards-incompatible way: FOUserAgent.setResolution() -> FOUserAgent.setSourceResolution() and FOUserAgent.setTargetResolution()
Resolution parameter to the user agent is split into:
- a source resolution used to determine the pixel size in SVG images and bitmap without resolution information
- a target resolution used to specify the output resolution of bitmap images generated by bitmap renderers and bitmaps generated by Batik for filter effects.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@357081 13f79535-47bb-0310-9956-ffa450edef68
The command-line now automatically sets two parameters for any XSLT transformation: "fop-output-format" contains the MIME type of the currently selected output format, "fop-version" contains FOP's version number.
Deprecated constructors Fop(int) and Fop(int, FOUserAgent).
Deprecated Fop.getVersion() in favor for Version.getVersion().
Changed every place the newly deprecated methods were called.
Ant task and TestConverter changed to fully use MIME types.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@332791 13f79535-47bb-0310-9956-ffa450edef68
Fop.java gets two new constructors: Fop(String) and Fop(String, FOUserAgent) where the String is the MIME type for the desired output format.
MimeConstants provides a comprehensive list of MIME types used in Fop.java.
Non-standard, FOP-specific MIME types changed to a uniform pattern: application/X-fop-awt-preview, application/X-fop-print and application/X-fop-areatree.
RendererFactory now supports manual registration and dynamic discovery of Renderers and FOEventHandlers by their MIME types. Instantitation is done using MIME types everywhere.
The RENDER_* constants are mapped to MIME types in Fop.java.
RendererFactory is now an instantiable class whose reference is held by FOUserAgent just like it is done for the XLMHandlers.
Renderers and FOEventHandlers now each have a *Maker class which is a kind of factory class which is used to register a Renderer/FOEventHandler and additionally serves to provide additional information about the thing, such as the MIME types it supports and if the implementation requires an OutputStream.
The command-line gets a new option: -out application/pdf myfile.pdf is the generic way to create an output file. If someone created a WordML output handler and provided the right service resource file he could specify "-out text/xml+msword out.xml". ".out list" lists all MIME types that are available for output.
Renderers can now potionally expose a Graphics2DAdapter which in concert with Graphics2DImagePainter can be used by FOP extensions to paint their content directly using a Graphics2D instance. That makes it possible to avoid a detour via SVG/Batik in certain cases.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@332549 13f79535-47bb-0310-9956-ffa450edef68
New "-foout" parameter which only saves the intermediate XSL-FO file when -xml and -xsl are used. Saves people from having to call a separate XSL transformer.
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
Resurrected Java2D/AWT Renderer (including bitmap output to PNG and TIFF using the Batik codecs and print capability).
Submitted by: Renaud Richardet <renaud.richardet.at.gmail.com>
Changes on the original patch:
- PageViewport: isResolved() caused a NPE which I fixed.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@198725 13f79535-47bb-0310-9956-ffa450edef68
Merge of branch Temp_KnuthStylePageBreaking back into HEAD.
Temp_KnuthStylePageBreaking branch and HEAD have been tagged prior to the merge, so merging uncommitted work from the branch should be easier.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@198627 13f79535-47bb-0310-9956-ffa450edef68
Better command-line logging without losing the possibility to fine-tune Commons Logging from outside.
Submitted by: Finn Bock <bckfnn.at.apache.org>
plus using the new CommandLineLogger for PFMReader and TTFReader, too.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@197940 13f79535-47bb-0310-9956-ffa450edef68
1.) Moved the SAXParser-creating method from FOFileHandler to CommandLineOptions,
the latter being the class directly using it.
2.) Decoupled the SVG classes from apps.FOFileHandler, the SVG classes for some reason
want a string containing a name of a SAXParser. We'll need to look in the future for
the actual need for this--normally error messages are done by the caller, not
the callee. It would appear that Batik can generate a SAXParser name by default,
and use that when not explicitly overridden by the caller.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@197804 13f79535-47bb-0310-9956-ffa450edef68
1. Output constant types (RENDER_PDF, RENDER_PS, etc.) made common between
CommandLineOptions and Driver, and factored into fo.Constants interface.
2. New Driver(AWTRenderer renderer) constructor added in apps.Driver for
the AWTRenderer (which does reloading, unique among the output types.) Note
reloading currently doesn't work--AWTRenderer not yet functional.
3. Driver.hasData() method removed from API--a search on when it was implemented
dates it to 2001, when reset() was coded. Unsure of its need, and so
removed until we have user requests for it.
4. Renderers abstracted away from API in favor of just calling .setRenderer(int Rendertype),
and configuring user-configurable options in FOUserAgent.
5. Driver.setRenderer(String <renderer class name>) also dropped. If external user
need for it, can be re-implemented fairly easily via a "renderer override" string in FOUserAgent, for which FOTreeHandler can read and use instead.
6. Validity checking added to fo:flow, and convenience functions defining the "%block;"
parameter entity and neutral containers as defined in 6.2 of spec [1] added to FObj.
[1] http://www.w3.org/TR/2001/REC-xsl-20011015/slice6.html#section-N9447-Formatting-Object-Content
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@197745 13f79535-47bb-0310-9956-ffa450edef68
1.) Moved the CommandLineOptions' InputHandler object into FOUserAgent, allowing
for a no-parameter constructor for AWTRenderer (like the other renderers). (Code is
not yet ideal in AWTRenderer, but will do the task.)
2.) AWT renderer handling now more similar to the other renderers
(simplifications in Driver, Fop).
3.) Driver.getRenderer() removed from API. (Renderer configuration now mostly
done through FOUserAgent, and setup of renderer prior to calling setRenderer().)
4.) Validity checking added to region-after, -start, -end, and -before.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@197744 13f79535-47bb-0310-9956-ffa450edef68
1.) Moving renderer-specific customization variables (producer, creator, create date) to FOUserAgent, those renderers which can work with these values can read them from passed-in FOUserAgent instance.
Obtained from:
Submitted by:
Reviewed by:
Conversion of Avalon to Commons-Logger. (Will still need to update the
examples, which I will take care of next; Jeremias will be modifying
the PDF libraries for more efficient use of the CL loggers.)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@197474 13f79535-47bb-0310-9956-ffa450edef68
1.) Deprecation of most constructors in XSLTInputHandler in favor of JAXP.
2.) Removal of unused transformer member variable in XSLTInputHandler.
3.) Partial modifications -- code from Xalan project -- in order to be
able to handle command line parameters for XSLT stylesheet. (Changes
still needed in XSLTInputHandler.getXMLFilter() -- unsure how to set
parameters to an XMLFilter.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@197350 13f79535-47bb-0310-9956-ffa450edef68
1.) CommandLineStarter removed, its functionality placed directly into Fop.main().
Fop.main() now responsible for taking command-line input as provided from
CommandLineOptions, and activating a Driver instance with that data.
2.) Minor cleanup of error messages in CommandLineOptions.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@196794 13f79535-47bb-0310-9956-ffa450edef68
1.) Moved the business logic for determining which starter to create from apps.CommandLineOptions to apps.Fop; CLO is now Starter-free.
2.) Made the input and output type constants in CLO public, to make the CLO.getOutputMode() and CLO.getInputMode() accessor functions meaningful. (Should probably make uniform with the very similar constants in the Driver class in the future.)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@196760 13f79535-47bb-0310-9956-ffa450edef68
Created a new overloaded method Driver.render(InputHandler), simplifies internal calls to the Driver class by centralizing parser initialization and InputSource extraction.
Revert refactoring of Driver to Session. Files affected should be identical to that which is two revisions earlier (e.g. if 1.3 is being checked in here, it should be identical to 1.1).
2. Fix all references to use Session instead of Driver.
3. Keep contents of "Services" class, but remove the class definition itself so that it can be used by both Driver and Session.
4. Deprecate Driver.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@196503 13f79535-47bb-0310-9956-ffa450edef68
First batch of changes for preparation for adoption of Avalon patterns. Only changes on logging for now. Mostly usage of LogEnabled contract interface. Separate mail follows.