Dropping content from a ColumnText object

Tags: iText 5
Files: 
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package sandbox.columntext;
 
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.ColumnText;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import sandbox.WrapToTest;
 
/**
 * @author Bruno Lowagie (iText Software)
 */
@WrapToTest
public class DropTablePart {
    public static final String DEST = "results/columntext/drop_table_part.pdf";
 
    public static void main(String[] args) throws IOException, DocumentException {
        File file = new File(DEST);
        file.getParentFile().mkdirs();
        new DropTablePart().createPdf(DEST);
    }
 
    public void createPdf(String dest) throws IOException, DocumentException {
        Document document = new Document();
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(dest));
        document.open();
        Rectangle column = new Rectangle(36, 36, 559, 806);
        ColumnText ct = new ColumnText(writer.getDirectContent());
        ct.setSimpleColumn(column);
        for (int i = 0; i < 4; ) {
            PdfPTable table = new PdfPTable(new float[]{0.25f, 0.25f, 0.25f, 0.25f});
            table.setHorizontalAlignment(Element.ALIGN_LEFT);
            table.setWidthPercentage(100);
            PdfPCell cell = new PdfPCell(new Phrase("inner table " + (++i)));
            cell.setColspan(4);
            table.addCell(cell);
            for (int j = 0; j < 18; j++) {
                table.addCell(new Phrase("test Data " + (j + 1) + ".1"));
                table.addCell(new Phrase("test Data " + (j + 1) + ".1"));
                table.addCell(new Phrase("test Data " + (j + 1) + ".1"));
                table.addCell(new Phrase("test Data " + (j + 1) + ".1"));
            }
            ct.addElement(table);
            if (ColumnText.hasMoreText(ct.go())) {
                document.newPage();
                ct = new ColumnText(writer.getDirectContent());
                ct.setSimpleColumn(column);
            }
        }
        document.close();
    }
}
File nameRaw URLUpdated
DropTablePart.javaDropTablePart.java2016-04-09 11:33 am
Results: 
File nameRaw URLUpdated
cmp_drop_table_part.pdfcmp_drop_table_part.pdf2016-04-09 11:33 am