sounds like you should be using SVG, not FOP; FOP is all about making
placement decisions, SVG is all about rendering to the author defined
positions

glenn

On Mon, Jan 24, 2011 at 8:39 AM, Eric Douglas <edoug...@blockhouse.com>wrote:

> If you're just printing a book as a bunch of text which does not already
> fit to page and throwing it into a document letting line wraps and breaks
> fall where they may it might look a bit funny.  If you're using variable
> width fonts you can read the font to get character width and calculate the
> font size and how many rows will fit on a page based on the widest character
> in the set if you don't mind a bunch of whitespace.
>
> Oddly from reading what others have tried to do with FOP it seems no one
> else has thought to use it like I do though I think my program is the best
> way to use it.  I use it as a report writer.  I don't use fo:table.  I don't
> let it calculate where to place anything on the page.  I only use one
> standard fixed width font set.  I place all text on the document with
> absolute positioning.  I use embedded code to load the custom font files
> (one for standard, one for bold, one for unicode) and programmatically
> generate the xml.  If I want a table I can create empty blocks with borders
> or use svg line drawing to draw my own table lines around the text.
>  Everything fits on a page.  If anything wraps to the next page the report
> generating program creates a new page tag.  Since it's all in a program it's
> optional if it wants to write an xml, fo, or pdf file.  They can all be
> passed through as bytes.  The direct print option passes the pdf through to
> pfdbox which generates a Pageable object for a standard java PrinterJob.
>  It's extremely useful if you can accept that all reports should be printed
> in Lucida Typewriter.  If you want a different fixed width fonts you just
> have to figure out the different font size calculation.  If you want a
> variable width font, absolute positioning becomes a lot more difficult.
>
> I love that it's so dynamic and that it doesn't generate any output until
> it's done.  I wrote a report with a heading block using a font size larger
> than the details, which adds detail amounts which could take several pages
> to get total amounts which print in the heading block on the first page.
>  This also allows validation before print.  If there's a problem with the
> report program on printing page 5 it doesn't have to print anything.
>
>
> -----Original Message-----
> From: Andreas Delmelle [mailto:andreas.delme...@telenet.be]
> Sent: Saturday, January 22, 2011 1:50 PM
> To: fop-users@xmlgraphics.apache.org
> Subject: Re: AW: AW: [FOP 1.0] Worse performance than with 0.20.5 !?
>
> On 21 Jan 2011, at 08:31, Matthias Müller wrote:
>
> Hi Mathias
>
> > I temporarily disabled all images and special fonts in my fo file and
> > still have the issue with the heap space. So i assume that i only have
> > a chance to improve the rendering by splitting the document in
> > multiple page-sequences. The thing is now, that the size of the single
> > tables may vary extremely. There's also a case that i produce a table
> over 400+ pages !!!
> > What about splitting the tables after each, let's say, 20 pages?
> > Where's the best performance, less than 20?
>
> That could be a good start, but --it depends. It's really very difficult to
> say how many pages is ideal.
> It is possible to let FOP run out of heap space with a document containing
> only a single fo:block with a dump of a chapter generating about 40 pages
> (or even only 1 page --at font-size 1pt). That is, purely the layout
> engine's linebreaking algorithm. No fancy fonts or tons of images. Not even
> a fo:table. On the one hand, that admittedly points to a lack of
> scalability.
> On the other, the fact remains: divide and conquer. Breaking up that same
> fo:block into multiple blocks can make a world of difference.
>
> For the end-result, it is obviously best to break the content at a boundary
> that makes sense logically. You can try to approximate how many rows you can
> fit into one page, and try to insert breaks from there, but that will likely
> lead to results that make little sense to the ultimate consumer/reader of
> the document...
>
> >
> > I almost forgot the most important point: If I split the table after
> > the 20th page (or rather: after each 200th table rows (assuming ~10
> > rows per page)), how do I ensure that the page-sequence ends at the
> > page bottom. The size of the rows also may vary.
>
> Short answer: you can't. Splitting into multiple fo:page-sequences is
> always a trade-off, since it introduces a forced break that is basically
> arbitrary, unless you can /make/ it so that the break makes sense there.
>
> Longer anwser is that one might be able to pull it off, but that would
> require a two-pass approach. In your case, that seems non-applicable, since
> the first pass will cause the out-of-memory condition.
>
>
>
> Regards
>
> Andreas
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: fop-users-unsubscr...@xmlgraphics.apache.org
> For additional commands, e-mail: fop-users-h...@xmlgraphics.apache.org
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: fop-users-unsubscr...@xmlgraphics.apache.org
> For additional commands, e-mail: fop-users-h...@xmlgraphics.apache.org
>

Reply via email to