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

时间:2015-03-31 15:13:27

标签: grails pdf-generation itextsharp itext export-to-pdf

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

我已经分层但无法找到 -

的确切解决方案
  

我想动态生成多页PDF,但页面应该是   同样分为两个相等的垂直部分。我使用document.newPage(),但这是一个页面分为两个   页。

代码段 -

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();
    }



}

1 个答案:

答案 0 :(得分:1)

您可以尝试使用 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;