Hi Ben, 

Well, I have one idea, but I'm not sure you can use it. You'll have to use the 
area tree. 
* You want to to print 10 pages in one page sequence, for example.
* Guess, how many rows you will need to fill these 10 pages. Add some to make 
sure, the 10 pages are always filled.
* Give each row an id. Keep it bidirectional, so you can find the row from the 
id.
* Get the area tree, ask it for the first row id of page 11.
* Print the 10 pages again, only fill it with exactly enough rows. 
* Continue with next batch. Keep in mind, ids must be unique in document, so 
either you removed the ids from the previous batch or the id contains a batch 
identifier.

Regards,
 
Georg Datterl
 
------ Kontakt ------
 
Georg Datterl
 
Geneon media solutions gmbh
Gutenstetter Straße 8a
90449 Nürnberg
 
HRB Nürnberg: 17193
Geschäftsführer: Yong-Harry Steiert 

Tel.: 0911/36 78 88 - 26
Fax: 0911/36 78 88 - 20
 
www.geneon.de
 
Weitere Mitglieder der Willmy MediaGroup:
 
IRS Integrated Realization Services GmbH:    www.irs-nbg.de 
Willmy PrintMedia GmbH:                            www.willmy.de
Willmy Consult & Content GmbH:                 www.willmycc.de 
-----Ursprüngliche Nachricht-----
Von: Ben Wuest [mailto:ben.wu...@q1labs.com] 
Gesendet: Freitag, 22. Mai 2009 15:18
An: fop-users@xmlgraphics.apache.org
Betreff: page-sequence and out-of-memory

Hi -

 

I've read an incredible amount about this and do not think there is anyway 
around this problem but I figured I'd send this out there to see if there were 
any ideas.  

 

The basic just of the problem is that I am trying to render a report with 
tabular data and running out of memory.  The number of rows can reach 40,000 
records.  From what I've read, I understand that the reason FOP is running out 
of memory is because the whole table is wrapped in one page sequence (basically 
a lot of pages).  

 

Because the fo file for the reports I am generating is generated dynamically, I 
was able to batch the table into multiple page sequences (this removed the 
memory issues) but this presents a problem because FOP automatically starts a 
new page when you end a page sequence.  This can make the table look choppy 
because it can be broken with only two records on a page.  I tried to work in 
algorithms to automatically estimate the batch size for a table but this is 
hard because there is no real way to estimate the record height in the table or 
access the current page number during the rendering process to dynamically 
break page sequences.

 

I would really like to find a way to either keep FOP's memory in check (but I 
don't think I can do that without multiple page-sequences) or have a new 
page-sequence not automatically start a new page.  The problem with the page 
sequences is that it starts a new page (so the table is broken up).  Because 
the tabular data I am rendering comes in many shapes and forms this is really 
not an option.  

 

Any ideas? 

 

Ben.

 

--
Ben Wuest
Software Engineer, Development
Q1 Labs Inc - The Nexus of Security and Networking
Office: (506)-462-9117 ext 163 Fax: (506)-459-7016 ben.wu...@q1labs.com | 
http://www.q1labs.com <http://www.q1labs.com/> 

 


---------------------------------------------------------------------
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