How to fit a String inside a rectangle?

后端 未结 1 779
孤街浪徒
孤街浪徒 2020-11-27 08:44

I\'m trying to add some strings, images and tables into my pdf file (there have to be several pages) but when i try to use ColumnText (I use this because I want

相关标签:
1条回答
  • 2020-11-27 09:17

    There are three options:

    1. Either you provide a bigger rectangle, so that the content fits inside,
    2. or you reduce the content (e.g. smaller font, less text),...
    3. Keep the size of the rectangle, keep the font size, etc... but add the content that doesn't fit on the next page.

    How do you know if the content doesn't fit?

    You can add the content in simulation mode first, and test if all the content was 'consumed':

    int status = ct.go(true);
    boolean fits = !ColumnText.hasMoreText(status);
    

    Based on the value of fits, you can decide to change the size of the rectangle or the content. There's an example that shows how to do this: http://itextpdf.com/examples/iia.php?id=163

    If you can distribute the content over different pages, you don't need simulation mode, you just need to insert a document.newPage();

    ColumnText ct = new ColumnText(cb);
    ct.setSimpleColumn(rect);
    int status = ct.go();
    while (ColumnText.hasMoreText(status)) {
        document.newPage();
        ct.setSimpleColumn(rect);
        status = ct.go();
    }
    

    In this example rect contains the coordinates of the rectangle.

    0 讨论(0)
提交回复
热议问题