Hi Paulo,
My problem becomes alot trickier to solve when I take into account the
fact that I have several nested tables. The simple case of having one
table in the pdf is easy, and I can quite happily split this amount
several tables and add page breaks directory to the document object.
However, if for example I say that I have a single table with two
columns. In the first column is a table of indeterminate length. In
the second column is another table with one columns and two cells, the
first cell containing an image and the second containing another table
of indeterminate length. (see attached gif)
Both of the large tables have large amounts of data in, so according to
what I have learned so far, I will have to manually place the data and
determine myself the amount of rows I can fit on the page.
Suddenly the process is alot more difficult, because I have to keep
track of the contents of all the tables in the hierarchy, and recreate
the table structure on the next page continuing all tables where they
left off.
Is this just something that I will have to work out how to do
programmatically? Or is there anything in this API that can help me out?
Has anyone come across this kind of problem before?
Thanks,
Sam.
Paulo Soares wrote:
You can use direct content and high level objects. In this case you just
need to break the table in several smaller tables.
Paulo
----- Original Message -----
From: "Sam Green" <[EMAIL PROTECTED]>
To: "Post all your questions about iText here"
<itext-questions@lists.sourceforge.net>
Sent: Monday, December 11, 2006 1:43 PM
Subject: Re: [iText-questions] Memory usage
Thank Paulo,
It seems strange to me that the massive leap in memory usage occurs when
the PdfPTable is added to the document, rather than when the large
complex PdfPTable is created. But I guess it's feasible that writing
to the PDF document requires an extra proportional amount of memory
resources to the size of the object being written. Would that be
correct?
Looks as though I'm going to have to start delving into the direct
content more and more! *gulp*
Thanks again,
Sam.
Paulo Soares wrote:
See
http://itextdocs.lowagie.com/tutorial/objects/tables/pdfptable/index.html#memory
Paulo
----- Original Message -----
From: "Sam Green" <[EMAIL PROTECTED]>
To: "iText Mailing List" <itext-questions@lists.sourceforge.net>
Sent: Monday, December 11, 2006 1:05 PM
Subject: [iText-questions] Memory usage
Hi there,
I'm having some issues with the amount of memory PDF generation is
using, and I'd just like to run it past you to see if you have any ideas
as to the best way to tackle it!
I'm running this as part of a tomcat application.
I'm using the following code to open up the file and write the data:
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance( document, new
FileOutputStream( temporaryFileName ));
document.open();
// Add a title page first.
..
// Add main pages.
PdfPTable table = getPDFRendering();
document.add( table );
document.close();
getPDFRendering() is generating a few nested PdfPTables with the
occassionally text Chunk, with a large PdfPTable at its core.
This data table contains 500-1000 rows of ~30 columns (each cell
containing, typically, an integer). I am also using an extra empty cell
between each cell for spacing (I am reusing my 'blank cell' object for
each of these empty cells).
while watching 'top' when the 'document.add' line gets executed, the
memory usage of tomcat increases by ~500mb.
There are a few points I thought of:
- That's alot of data. However, I'd like to find ways of being able to
generate the PDF while trying to control the memory usage.
- Extra empty cell for spacing might be a bit retarded, is there some
'cell padding' i can add to the PdfPTable?
- Is there something odd adding to the overhead? E.g. having a large
table inside a bunch of nested tables?
- Would it be better on memory to, instead of creating the table and
then adding it to the document, pass the document into the method that
generates the main table and do the following:
document.add( table );
...
for( int i=0; i<rows; i++ ) {
for( int j=0; j<cells_in_row; j++ ) {
table.addCell( blah );
}
}
...
Would any of these ideas help substantially? Is there anything else I
can try?
Thanks for your help,
Sam.
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share
your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions
Buy the iText book: http://itext.ugent.be/itext-in-action/
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share
your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions
Buy the iText book: http://itext.ugent.be/itext-in-action/
--
Sam Green
Flextrade UK
(44) 0207 796 3001
8 Fredericks Place
London EC2R 8AB
This communication is for informational purposes only. The contents of
this
transmission are confidential and intended solely for the use of the
individual or entity to whom they are addressed.If you have received this
email in error please notify the sender by return email and delete this
message from your system.
Flextrade Systems Inc., its subsidiaries and affiliates do not guarantee
the
completeness and accuracy of this transmission's contents. Moreover,
Flextrade Systems Inc., its subsidiaries and affiliates do not guarantee
this communication to be free of viruses and accept no liability for any
damage caused thereof.
--------------------------------------------------------------------------------
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share
your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
--------------------------------------------------------------------------------
_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions
Buy the iText book: http://itext.ugent.be/itext-in-action/
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions
Buy the iText book: http://itext.ugent.be/itext-in-action/
--
Sam Green
Flextrade UK
(44) 0207 796 3001
8 Fredericks Place
London EC2R 8AB
This communication is for informational purposes only. The contents of this
transmission are confidential and intended solely for the use of the
individual or entity to whom they are addressed.If you have received this
email in error please notify the sender by return email and delete this
message from your system.
Flextrade Systems Inc., its subsidiaries and affiliates do not guarantee the
completeness and accuracy of this transmission's contents. Moreover,
Flextrade Systems Inc., its subsidiaries and affiliates do not guarantee
this communication to be free of viruses and accept no liability for any
damage caused thereof.

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions
Buy the iText book: http://itext.ugent.be/itext-in-action/