Fix for gradients and patterns for SVG to PDF transcoding.
Improvement for break-out handling in PDF Renderer.
Submitted by: Thomas Deweese <deweese.at.apache.org>
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@328731 13f79535-47bb-0310-9956-ffa450edef68
The text is split into WordAreas and SpaceAreas: the latters (when the font is multibyte) are not affected by the Tw operator, so they are shifted in the inline progression dimension instead.
The behaviour of the other renderers should be the same as before this change.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@328381 13f79535-47bb-0310-9956-ffa450edef68
Fix for internal forward references in PDF output (basic-link with internal-destination):
Implemented by making out-of-order processing possible. The problem will still surface if supportsOutOfOrder() returns false.
PDF library now supports the addition of pages in non-consecutive order. This is a backwards-compatible change. The old behaviour and the old method signatures are still in place.
PageViewport now carries a page index which doesn't represent the page number but the overall index of the page within the current rendering run.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@326133 13f79535-47bb-0310-9956-ffa450edef68
Cleaner transformation matrix handling.
SVG painting extracted into an XMLHandler subclass like for the other renderers.
Submitted by: Richard Wheeldon <richardw.at.geoquip-rnd.demon.co.uk>
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@279005 13f79535-47bb-0310-9956-ffa450edef68
Several fixes for SVG painting in the Java2DRenderer.
Updated SVG test case to test additional features.
Submitted by: Richard Wheeldon <richardw.at.geoquip-rnd.demon.co.uk>
Comments and changes by jeremias:
Added an additional SVG image with an intrinsic size and modified the test case to use and test that, too.
I'll commit this patch because it improves the current situation but I'm not happy with the current state of Java2DRenderer.renderSVGDocument(). Creating inverse transformation matrices is surely not the right way to do this. The matrix should be saved and restored instead.
Furthermore, renderSVGDocument should be extracted into a Java2DSVGHandler like it is done for the other renderers.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@278966 13f79535-47bb-0310-9956-ffa450edef68
font dict writing moved to new class PSFontUtils.
PSGenerator.resolveURI() does the same as FOUserAgent.resolveURI() but thus avoids the dependency on FOUserAgent. Needed for font embedding.
Treat fonts as resources now.
Wrap font keying in FOP-specific comments for reliable finding.
New class SubInputStream which reads a maximum number of bytes from an underlying InputStream and then behaves like it has reached EOF. Used for Type1 font embedding.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@278782 13f79535-47bb-0310-9956-ffa450edef68
Border support on block, block-container and inline introduced. Nesting borders are supported partially: only two levels of nesting.
Consecutive paragraphs with identical border formatting are considered part
of a single group with the border information applying to the entire group.
Bugzilla #36477:
start-indent and end-indent are used instead of margins only to do indentation.
Submitted by: Sergey Simonchik <Sergey.Simonchik.at.borland.com>
Changes to the patch by jeremias:
Fix for deferred handling which didn't work for block-containers. They got ignored.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@278720 13f79535-47bb-0310-9956-ffa450edef68
Fix for block background not extending to the whole block content-width.
Submitted by: Sergey Simonchik <Sergey.Simonchik.at.borland.com>
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@278695 13f79535-47bb-0310-9956-ffa450edef68
Background images were incorrectly positioned in some absolute positioned blocks.
Some additional attributes output by the XMLRenderer.
Refactored the layout for e-g and i-f-o. Introduced common base classes for the
corresponding flow objects as well as the e-g and i-f-o LMs.
Fixed incorrectly applied margins on region-body when writing mode is not lr.
Fixed application of correct percent base for margins and extents on regions
when the reference orientation is 90 degrees.
Fixed incorrectly positioned regions when writing mode is different between the
simple-page-master setting and the setting on the region.
Several updates to the layout engine test cases.
Submitted by: Manuel Mall <mm.at.arcus.com.au>
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@278690 13f79535-47bb-0310-9956-ffa450edef68
Initial work on enhancing the extension facilities to register special extensions which create so-called ExtensionAttachment objects which are attached to the formatting object they are attached to. These objects can be evaluated by standard or custom layout managers or simply passed through to the area tree (the latter is NYI). The AreaTreeHandler currently takes ExtensionAttachment objects from fo:root and fo:declarations and wraps them in OffDocumentItems that Renderers can react on to provide additional functionality on document-level (like PDF metadata or PostScript media dictionaries). Since the simple-page-master is available directly from the PageViewport the renderer can take ExtensionAttachment objects directly from there (see PSRenderer.renderPage()).
Extension Elements that provide ExtensionAttachments are not added as such to the child element list of a formatting object since they work a little differently and should free memory as soon as possible.
The PostScript extension described in http://wiki.apache.org/xmlgraphics-fop/ExtensionsForPostScript are now fully implemented but under the namespace URI "http://xmlgraphics.apache.org/fop/postscript", not "http://xml.apache.org/fop/extensions". I'll need to look at namespaces again separately, later.
The new PSExtensionElementMapping is currently hard-coded into FOTreeBuilder as are the other ElementMapping classes.
OffDocumentItem is now an interface, AbstractOffDocumentItem now providing the base functionality of the former OffDocumentItem class.
Lots of clean-up and javadocs while working through this, for example: FObj.childNodes is not public anymore. Instead a special method on fo.flow.InstreamForeignObject provides the child in the one case childNodes was directly accessed. PropertyMaker access in FObj is also done through a method now, propertyListTable is now private.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@267209 13f79535-47bb-0310-9956-ffa450edef68
Revised percentage resolution system.
Submitted by: Manuel Mall <mm.at.arcus.com.au>
Slightly modified to avoid early evaluation of getValue().
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@265577 13f79535-47bb-0310-9956-ffa450edef68
Harmonization between the two Graphics2D implementations. Clipping is done after the transform. All path iterators use an identity transform which makes the PDF/PS code more readable and usually smaller.
Fixes unrecoverable exceptions causing BatchDiffer to fail.
Doing a clean separation of encoded and decoded data inside the image implementations. Helps fix a problem with the encoded CCITT TIFF being sent to the PS output even though this is not yet implemented.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@239661 13f79535-47bb-0310-9956-ffa450edef68
Started to implement a resource tracking facility in the PSGenerator. It tracks resources such as EPS files, procset etc. as PSResource instances.
Resource-DSC comments are now generated.
Procsets moved into the Prolog where they belong.
Font setup is no longer a resource as it is not interchangeable between rendering runs. It's now just setup code with FOP-specific comments surrounding it.
In the future, this may also make it possible to write a size-optimized PS file from which the resources are stripped while writing the file. These resources will then be installed directly on a printer or inserted into the Prolog by a post-processor.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@239419 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