【发布时间】: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