【发布时间】:2015-09-02 04:15:36
【问题描述】:
我必须根据一些输入生成一个 pdf 文件。每次代码运行时,输入长度可能会有所不同,所以如何根据我的输入内容动态地将页面添加到文档中。
public class pdfproject
{
static int lineno=768;
public static void main (String[] args) throws Exception
{
PDDocument doc= new PDDocument();
PDPage page = new PDPage();
doc.addPage(page);
PDPageContentStream cos = new PDPageContentStream(doc, page);
for(int i=0;i<2000;i++)
{
renderText("hello"+i,cos,60);
}
cos.close();
doc.save("test.pdf");
doc.close();
}
static void renderText(String Info,PDPageContentStream cos,int marginwidth) throws Exception
{
lineno-=12;
System.out.print("lineno="+lineno);
PDFont fontPlain = PDType1Font.HELVETICA;
cos.beginText();
cos.setFont(fontPlain, 10);
cos.moveTextPositionByAmount(marginwidth,lineno);
cos.drawString(Info);
cos.endText();
}
}
当当前页面上没有空间时,如何通过动态添加新页面来确保在下一页上呈现内容?
【问题讨论】:
-
Pdfbox 不包括任何自动布局支持。因此,您必须跟踪页面的填充程度(例如通过测试
lineno),并且您必须关闭当前页面、创建新页面、重置填充指示器等。 -
是的,新页面应该在满足 (lineno>0 && lineno
标签: java pdf pdf-generation pdfbox