Using the fo property last-line-end-indent instead of a hard coded value.
This fixes item 1) in bug 36533.
Note that the old behaviour (before the changes) was not completely equivalent to the one requested by the specs, as the empty space was not necessarily placed at the end of the line; for example, the last line in a right-aligned paragraph was aligned as the previous lines, although shorter.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@279338 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
Not sure if it's the best solution but this changes the following:
- Enable plain filenames (without "file:" scheme) as URI. FOURIResolver tries to create a java.io.File to access the file.
- If after removing the scheme from a file: URL the string still contains a ":" it is likely an absolute Windows path for which the user forgot to specify a leading "/", i.e.:
file:C:/Temp/test.txt --> file:/C:/Temp/test.txt
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@278779 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
PDFNumber.doubleOut() rewritten using java.text.DecimalFormat.
This fixes a bug of doubleOut() not recognizing the scientific format sometimes returned by Double.toString(double).
This change may result in slightly different value being written to the PDF stream. The former doubleOut contained specific code to do special rounding where the new method using DecimalFormat implicitly uses the BigDecimal.ROUND_HALF_EVEN strategy when rounding. These different values hopefully won't make a big visual difference. They don't in my tests.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@265688 13f79535-47bb-0310-9956-ffa450edef68
An additional comment so this line will not be activated accidentally. The problem was a backwards-incompatible chnage in Batik for which a patch has been submitted:
Set not only the base URL for the SVG Document but also the URI. Otherwise, relatively referenced documents or images inside an SVG defined in a fo:instream-foreign-object don't get resolved. This fixes certain problems with examples/fo/svg/external.fo.
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
JAI image does not release all resources - reported by Stephen Denne - thanks!
When loading an image provider whose support libraries are missing an
exception is thrown which should really only be a warning and the next provider
be tried.
Submitted by: Manuel Mall <mm.at.arcus.com.au>
Changes to the patch by JM:
Log level for the warning changed to debug() because the binary distribution is compiled with JAI and JIMI support and this will cause a lot of inappropriate warnings for people just happy with ImageIO images.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@264978 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.
Set the background a little later, after the IPD is set. A block area grows as necessary so this doesn't currently fix the problem that the background traits are set before the BPD is known.