iTextSharp pdfpTable flowing in two columns in same page

前端 未结 1 816
抹茶落季
抹茶落季 2021-01-23 04:06

I am using iTextSharp PdfPTtable for creating tables from a database. When the table is lengthy (long but just with 3 columns), I managed to get the table flowing (

相关标签:
1条回答
  • 2021-01-23 04:43

    Your requirement is (almost) an exact match with one of the examples of my book. Please take a look at page 3 and higher of column_table.pdf.

    The book has the Java version of the example, but there's also a version ported to C#.

    Basically, you need to add the PdfPTable to a ColumnText object and go() as long as there is content in the column:

    // Column definition
    float[][] x = {
        new float[] { document.Left, document.Left + 380 },
        new float[] { document.Right - 380, document.Right }
    };
    column.AddElement(yourTable);
    int count = 0; // can be 0 or 1 if your page is divided in 2 parts
    float height = 0;
    int status = 0;
    // render the column as long as it has content
    while (ColumnText.HasMoreText(status)) {
        // add the top-level header to each new page
        if (count == 0) {
             AddFooterTable(); // for you to implement to add a footer
             height = AddHeaderTable(); // for you to implement to add a header
        }
        // set the dimensions of the current column
        column.SetSimpleColumn(
            x[count][0], document.Bottom,
            x[count][1], document.Top - height - 10
        );
        // render as much content as possible
        status = column.Go();
        // go to a new page if you've reached the last column
        if (++count > 1) {
            count = 0;
            document.NewPage();
        }
    }
    document.NewPage();
    
    0 讨论(0)
提交回复
热议问题