使用导出插件或 iText:Grails 将一个 PDF 页面垂直分成两个相等的部分

Divide one PDF page into two equal section vertically using export plugin or iText: Grails

我目前正在使用 Export 1.6 插件将我的 SQL 查询数据导出到 Grails 中的 PDF。

我已经分层但无法找到确切的解决方案 -

I want to generate dynamically multi page PDF, but the page should be equally partitioned into two equal section vertically.I used document.newPage() but this is dividing a page into two pages.

代码片段-

protected void exportData(OutputStream outputStream, List data, List fields) throws ExportingException{
        Rectangle left;
        Rectangle right;
        Document document = new Document();
        // step 2
        PdfWriter writer = PdfWriter.getInstance(document, outputStream);
        // step 3
        document.open();
        // step 4
        PdfContentByte canvas = writer.getDirectContent();
        ColumnText ct = new ColumnText(canvas);
        int side_of_the_page = 0;

        ct.setSimpleColumn(36, 36, 290, 806);
        int paragraphs = 0;
        while (paragraphs < 30) {
            ct.addElement(new Paragraph(String.format("Paragraph %s: %s", ++paragraphs, TEXT)));
            while (ColumnText.hasMoreText(ct.go())) {
                if (side_of_the_page == 0) {
                    side_of_the_page = 1;
                    canvas.moveTo(297.5f, 36);
                    canvas.lineTo(297.5f, 806);
                    //canvas.colorStroke
                    canvas.stroke();
                }
                else {
                    side_of_the_page = 0;

                    PdfPTable talble =  new PdfPTable()
                    while(data.size())
                    PdfPCell cell1 = new PdfPCell()


                    ct.addElement(data);
                    document.newPage();
                }

                ct.setSimpleColumn(305, 36, 559, 806);
            }
        }
        // step 5
        document.close();
    }



}

您可以尝试使用 itextpdf-5.x.x.jar 而不是默认的 Grails 导出插件。

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.ColumnText;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfWriter;