Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » iText »

Re: [iText-questions] PdfPTable.setKeepTogether(true)

itext gd

2006-09-04

Replies:

Hi Paulo,

> You can know the size the table will have by setting the setTotalWidth()
> but you'll have to calculate the effective space by subtracting the
> margins from the page size.
I'm not interested in the WIDTH but in the LENGTH a table will have,
the number of pages it will occupy. (one or more)
And table.getTotalHeight() only seems to return something meaningful
AFTER
the Document.add() call. I want to know it before adding it to the
document.

> Generally, in this cases, it's easier to do your own layout
> than trying to get around the limitation of Document.add().
Well, I don't ask for any exotic layout.
I'm trying to avoid that iText takes a new page in trying to keep
together a table
that can impossibly fit on one page (and so will however be split
further on)
I just want to avoid waste of paper (by user request)

________________________________
>
> From: itext-questions-bounces@(protected)...
> Sent: Fri 01-Sep-06 16:30
> To: itext-questions@(protected)
> Subject: [iText-questions] PdfPTable.setKeepTogether(true)
>
>
>
> Hi,
>
> I wrote a small app to check the behaviour of iText when you add a
> PdfPTable
> to a document via document.add() on which setKeepTogether(true); is set.
>
> These are my experiences:
>
> I add a first table of 60 rows. (So the last row is in the upper half of
> the 2nd page)
> Then
> - when I add a 2nd table containing 15 rows, it fits on the rest of the
> 2nd page, so it
>  is placed there. In fact a 2nd table of 33 rows still fits on the 2nd
>  page. So
> - when I add a 2nd table containing 34 rows, it starts on the 3rd page.
>  Which is due to the setKeepTogether(true)
>
> Now here's the point I have my doubts about:
> - When I add a 2nd table containing 60 rows, it also starts on the 3rd
> page.
>  I wonder why a new page is taken
>    - if the table does not fit on one page
>    - and so will be split further on?
>
>  The result is:
>  page 1: completely filled (1st table)
>  page 2: less than half filled (last part of 1st table)
>  page 3: completely filled (2nd table)
>  page 4: less than half filled (last part of 2nd table)
>
>  Since I didn't program any document.newPage() I would have expected
>  the less paper consuming:
>  page 1: completely filled (1st table)
>  page 2: completely filled (last part of 1st table + first part of 2nd
>  table)
>  page 3: (almost) completely filled (last part of 2nd table)
>
> I know that I can get this result by not applying setKeepTogether(true)
> on the 2nd table,
> but how can I know that I shouldn't? How can I know that the 2nd table
> doesn't fit on one page?
> (according to the methods used by document.add(table))
>
> Kind regards,
> Geert

--
http://www.fastmail.fm - Choose from over 50 domains or use your own


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
iText-questions mailing list
iText-questions@(protected)
https://lists.sourceforge.net/lists/listinfo/itext-questions
©2008 junlu.com - Jax Systems, LLC, U.S.A.