PR:
Obtained from:
Submitted by:
Reviewed by:
Switched to a static FOInputHandler object for the FOTree instead of relying on recursion to get to the FOInputHandler object stored at pagination.Root.
Simon Pepping [Sun, 5 Sep 2004 18:16:32 +0000 (18:16 +0000)]
New line breaking algorithm, patch 29124, submitted by Luca
Furini. This patch implements the algorithm for most but not yet all
inline layout managers.
For the algorithm, see D.E. Knuth and M.F. Plass, "Breaking paragraphs
into lines", Software, Practice and Experience 11 (1981) 1119-1184;
reprinted in: D. E. Knuth, "Digital typography", CSLI Lecture Notes
Number 78 (CLSI Publications, Stanford, CA, USA) pp. 67-155.
PR:
Obtained from:
Submitted by:
Reviewed by:
1.) AddChildNode(), characters() modified to throw SAXParseException to
allow AddChildNode() to do validation of its own.
2.) Better child validation added to PageSequence.java.
Remove unnecessary scale factor. This made all images added via SVG three times bigger than they need to be. The scale factor doesn't exist in PSGraphics2D.
Here's where this scale factor was introduced:
http://cvs.apache.org/viewcvs.cgi/xml-fop/src/org/apache/fop/svg/Attic/PDFGraphics2D.java?r1=1.18&r2=1.19&diff_format=h
Also reported by Jay Chiu for Fop 0.20.5 (Feb 2004)
Glen Mazza [Fri, 27 Aug 2004 06:02:03 +0000 (06:02 +0000)]
PR:
Obtained from:
Submitted by:
Reviewed by:
Some code cleanup in Title and PageNumberGenerator, removal of apparently unused logger instance from latter.
Simon Pepping [Thu, 26 Aug 2004 20:58:30 +0000 (20:58 +0000)]
Moved some functionality from LMiter to the LayoutManagers. The LMs
now hold the list of child LMs and the method preLoadNext. This makes
it possible to create a new LMiter object for a LM, or even a list
iterator over the list of child LMs if the latter is known to be
complete.
Glen Mazza [Wed, 25 Aug 2004 05:03:08 +0000 (05:03 +0000)]
1. Implemented validateChildNode() for fo:simple-page-master. This may cause some stress with the user community--as any declared fo:region-xxxx children must follow a specific ordering.
2. Modified several of our sample and test FO files to be compliant with the XSL spec with respect to the change above.
3. @todo's added to FO's still missing validateChildNode()
4. New FONode missingPropertyError() method created, for the major cases where missing properties should halt processing.
5. Various cleanup in our layout-master-set and region classes, including the removal of error checks that are no longer needed due to validateChildNode() being implemented.
Jeremias Maerki [Mon, 16 Aug 2004 19:33:19 +0000 (19:33 +0000)]
Fix JPEG with many long APPS markers.
Also defers the creation of the original node until it absolutely has to thus avoiding decoding the JPEG file and creating the raster unless needed.
Submitted by: Thomas DeWeese <Thomas.DeWeese.at.Kodak.com>
Jeremias Maerki [Sat, 14 Aug 2004 18:50:37 +0000 (18:50 +0000)]
Updated Common IO to first release.
Build updated so the transcoder packages are built correctly (reflecting the changes in the source code)
JUnit failures now let the build fail (note: JUnit is currently not activated in Gump runs)
Glen Mazza [Sat, 14 Aug 2004 18:36:21 +0000 (18:36 +0000)]
1.) fo:Instream-Foreign-Object initialization logic moved from AddLMVisitor
to flow.InstreamForiegnObject.java, and the layout logic itself moved to
a new layoutmgr.InstreamForeignObjectLM.java. (Broke with usual nomenclature of adding
~LayoutManager to end, given that newer 1.1 and post-1.1 FO names are
getting even larger.)
Glen Mazza [Fri, 13 Aug 2004 00:03:49 +0000 (00:03 +0000)]
1.) Layout initialization logic for fo:table, fo:table-header, and fo:table-footer
moved from AddLMVisitor to fo.Table.
2.) Layout logic for fo:external-graphic moved from fo.ExternalGraphic to
layoutmgr.ExternalGraphicLayoutManager.
3.) Partial implementation of validateChildNode() for fo:footnote.
4.) fox:destination commented out from images.fo sample until purpose, content
model better defined. Also needs a Maker class. (Does not appear to work
in either maintenance or HEAD.)
Simon Pepping [Tue, 10 Aug 2004 19:30:33 +0000 (19:30 +0000)]
This change allows users to set the level of the javadocs task to
private, package or public. It also allows users to set a user
hyphenation directory from which hyphenation files are compiled and
added to the hyph directory in the build.
PR:
Obtained from:
Submitted by:
Reviewed by:
Glen Mazza [Sun, 8 Aug 2004 18:39:26 +0000 (18:39 +0000)]
Implemented getNameId() which returns the Constants enumeration ID
for the FO. For future array work or to reduce the amount of string comparisons being done.
Glen Mazza [Fri, 6 Aug 2004 15:41:12 +0000 (15:41 +0000)]
PR:
Obtained from:
Submitted by:
Reviewed by:
Moved three FO's from AddLMVisitor->FObj.AddLayoutManager(); will eventually need to create additional LM's for at least two of them to remove the Area-specific code these FO's now have.
Glen Mazza [Fri, 6 Aug 2004 04:22:18 +0000 (04:22 +0000)]
PR:
Obtained from:
Submitted by:
Reviewed by:
1.) Continued conversion/deprecation of AddLMVisitor. About 16 FO's remaining.
2.) Created a *temporary* LMVisited interface to mark those FO's still
needing conversion. This will be dropped once the process is complete.
Glen Mazza [Wed, 4 Aug 2004 22:21:04 +0000 (22:21 +0000)]
PR:
Obtained from:
Submitted by:
Reviewed by:
Start of conversion of AddLMVisitor to FObj.AddLayoutManager(): removed
acceptVisitor() methods from FO's that don't need LM's
(e.g., those FO's not yet implemented or those that don't return areas anyway).
Glen Mazza [Sun, 1 Aug 2004 15:26:53 +0000 (15:26 +0000)]
PR:
Obtained from:
Submitted by:
Reviewed by:
Consolidated RegionBASE into Region and RegionBA/RegionSE (RegionBASE was
supporting only one unique property.)
Glen Mazza [Sun, 1 Aug 2004 04:20:50 +0000 (04:20 +0000)]
1.) Moved from FOPException to SAXParseException for addProperties()
2.) FONode: locator object added, its three components (file, line, col) removed
3.) FONode: new attributeError() method created for attribute problems in input FO.
4.) Removed some setup() methods in the FO's, placed them in addProperties() instead.
Created a "isOutOfLineFODescendant" member variable to FObj, needed for
input FOValidation. As defined in Sect. 6.2 of the spec, certain child FO's
are not valid if the parent FO is a descendant of an out of line FO (sect. 6.10)
Removed the non-File constructors from the InputHandler subclasses in favor
of JAXP (for embedded use), and standardized FOFileHandler to use a
StreamSource (like XSLTInputHandler). Currently, command Line usage
works only with files, but We may need to expand the constructors here
somewhat again should we provide other input options from the command line.
other options
Combined the apps.Driver class into apps.Fop. (195 LOC total.) Primary
benefit is to make Fop self-documenting in external code, also none of the
API ideas called for retention of the Driver class (even if there were
different ideas for its replacement).
Let's try this for a few weeks, if it confuses people too much (or when
the API starts to grow again) we can bring back Driver, possibly under
a different name, apps.FopProcess, perhaps.
See also:
http://marc.theaimsgroup.com/?l=fop-dev&m=108947697611032&w=2
http://marc.theaimsgroup.com/?l=fop-dev&m=108966015504506&w=2
http://marc.theaimsgroup.com/?l=fop-dev&m=108942673103344&w=2
http://marc.theaimsgroup.com/?l=fop-dev&m=108958756030147&w=2
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.
1.) Moved exclusively to Simon's DefaultHandler object for both Transformer
and SAXParser usage. DefaultHandler implements the ContentHandler interface
so it can be used where the latter was previously used, also it provides more
functionality. [1]
2.) Updated the examples and internal code accordingly.
3.) Renamed ExampleFO2PDFUsingSAX to ...Parser to avoid confusion (both use
SAX.)
1.) Driver constructor modified to require RenderType, and setter functions
for RenderType and FOUserAgent removed, to allow for better checking of
a valid Driver object at time of construction. (Also, will reduce need to
validate Driver object should it be a parameter to a method.)
2.) Added validity checking of renderType to FOTreeBuilder as well, in
effect decoupling Driver from FOTreeBuilder (the latter can work on its own
now.)
3.) Updated the various examples and the documentation to indicate the
new API.
Removed the Driver(OutputStream) convenience constructor as not particularly
helpful, and a can of worms given all the possible permutations of constructors
that could be created.
1. New constructor for Driver created, takes FOUserAgent constructor.
Used for both CLI and AWTRenderer. (Thanks to Simon Pepping)
2. Removed Driver(AWTRenderer) constructor.
3. OutputStream validation moved to FOTreeBuilder.
4. Driver.reset() removed, not currently serving a purpose.
Moved user-defined ElementMapping initialization from Driver to FOUserAgent.
Moved only "string" method, the version we use internally--probably sufficient
for others' work as well. (Note: an additional unused FOUserAgent object will
be created in driver during command-line use--cp. its no-param constructor vs.
setUserAgent() call in apps.Fop; this will need to be ironed out at some time.)
*Temporary* commit showing how this process works via SAXParserFactory;
including just for future reference should we get a question on this class
or wish to document this method on our web pages in the future.