我无法使用 Pdfbox 添加新页面


public static void main(String[] args) {
try {
PDDocument document = new PDDocument();
PDPage page = new PDPage(PDRectangle.LETTER);
document.addPage(page);
addText(document, page);
document.save("C:/Java/cda.pdf");
document.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private static void addText(PDDocument document, PDPage page) {
try {
PDPageContentStream contentStream = new PDPageContentStream(document, page,
PDPageContentStream.AppendMode.APPEND, true);
float sY = 750;
contentStream.beginText();
contentStream.setFont(PDType1Font.HELVETICA, 12);
contentStream.newLineAtOffset(60, sY);
for (int i = 1; i <= 50; i++) {
contentStream.showText("Lorem Ipsum is simply dummy text of the printing and typesetting industry.");
contentStream.newLineAtOffset(0, -18);
System.out.println(sY - 18);
sY = sY - 18;
if (sY - 18 < 18) {
contentStream.endText();
contentStream.close();
contentStream = new PDPageContentStream(document, new PDPage(PDRectangle.LETTER),
PDPageContentStream.AppendMode.APPEND, true);
contentStream.setFont(PDType1Font.HELVETICA, 12);
contentStream.beginText();
sY = 750;
}
}
contentStream.endText();
contentStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
  • 单页代码运行良好,但当内容超过第一页时,它不会添加新的第页
  • 找不到我缺少的东西
  • 我认为问题出在addText((的"if"块中

您需要调用

document.addPage(page);

也是第二次。问题中的代码在"孤立"PDPage对象中创建第二个页面内容流,并且不将其添加到文档中。

我没有重写代码,因为您需要一些重构,因为addText((已经有了一个PDPage对象。

相关内容

  • 没有找到相关文章

最新更新