【问题标题】:Divide one PDF page into two equal section vertically using export plugin or iText: Grails使用导出插件或 iText 将一个 PDF 页面垂直分成两个相等的部分:Grails
【发布时间】:2015-03-31 15:13:26
【问题描述】:

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

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

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

代码 sn-p-

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



}

【问题讨论】:

  • 我不确定,但我认为这可能与 iText pageElement placing side by side 重复。如果不是,请解释为什么ColumnText 不能解决您的问题(假设您实际上已经尝试过ColumnText;我们无法判断,您没有向我们展示任何代码)。
  • ColumnText 有没有简单的基本示例?在使用 ColumnText 时,我无法将我的页面分成两个部分,得到不同类型的错误,请为此提供任何简单的示例。将不胜感激。
  • 我今天早上刚做了一个来回答以下问题:stackoverflow.com/questions/29378407/…
  • 你提到了一个包含我名字的异常:No signature of method: com.lowagie.text.pdf.ColumnText.setSimpleColumn() is applicable for ... 当我在代码或堆栈跟踪中看到我的名字时,我知道人们正在使用不再支持的 iText 版本,应该不再使用(它已经快 6 岁了)。您不应该期望在过去几年中编写的示例可以与这么旧的 iText 版本一起使用。请升级!
  • 我正在使用最新的 Grails 导出插件版本“export:1.6”,但是使用它我必须进行所有的 PDF 生成、垂直分割和许多布局设计等等。请帮助我,我是所有这些的新手。

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


【解决方案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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2023-03-22
    相关资源
    最近更新 更多