我正在尝试创建一个 PDF 文件,其中包含文档中的大量文本框和来自另一个类的文本字段。我正在使用 PDFBox。
好的,创建一个新文件很容易,编写一行文本也很容易。现在,当我尝试插入下一个文本行或文本字段时,它会覆盖内容。
PDDocument doc = null;
PDPage page = null;
try{
doc = new PDDocument();
page = new PDPage();
doc.addPage(page);
PDFont font = PDType1Font.HELVETICA_BOLD;
PDPageContentStream title = new PDPageContentStream(doc, page);
title.beginText();
title.setFont( font, 14 );
title.moveTextPositionByAmount( 230, 720 );
title.drawString("DISPATCH SUMMARY");
title.endText();
title.close();
PDPageContentStream title1 = new PDPageContentStream(doc, page);
title1.beginText();
title1.setFont( font, 11 );
title1.moveTextPositionByAmount( 30, 620 );
title1.drawString("DEPARTURE");
title1.endText();
title1.close();
doc.save("PDFWithText.pdf");
doc.close();
} catch (Exception e){
System.out.println(e);
}
它确实给了我一个错误:“您正在覆盖现有内容,您应该使用追加模式”。
所以我正在尝试title1.appendRawCommands(String)
,但它不起作用。
如何添加新的文本框和文本字段(来自另一个类)?我在互联网上阅读了很多教程,但它们只显示了创建一行。
PDPageContentStream title1 = new PDPageContentStream(doc, page, true, true);
OP posted this as the answer, so this will flag to the system that there was an answer
此外,如果第一内容流包含显着改变图形状态的操作,例如通过更改当前的转换矩阵,并且希望新的内容流在恢复这些更改的情况下开始,应该使用具有三个布尔参数的构造函数:
PDPageContentStream title1 = new PDPageContentStream(doc, page, true, true, true);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)