gpt4 book ai didi

java - 使用 iText7 (Java) 将表格添加到现有 PDF 并继续添加其他页面

转载 作者:行者123 更新时间:2023-12-02 02:49:43 27 4
gpt4 key购买 nike

我正在尝试完成一个项目,其要求与 this question 相关的要求几乎相同2015 年问过。

Bruno 提供的答案很完美,但与 iText5 有关。我对 iText 比较陌生,并且正在拼命努力加快速度完成当前的项目。

  • 我需要填充 PDF 文档的字段
  • 我需要在填充部分下方添加一个表格,并且此后该表格需要跨越多个页面

有人可以帮忙将 Bruno 的答案从 iText5 翻译成 iText7 吗?

提前非常感谢您提供的任何/所有帮助!

最佳答案

你应该写这样的东西:

    PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(DEST));
Document doc = new Document(pdfDoc);
PdfAcroForm form = PdfAcroForm.getAcroForm(pdfDoc, true);
Map<String, PdfFormField> fields = form.getFormFields();
fields.get("Name").setValue("Jeniffer");
fields.get("Company").setValue("iText's next customer");
fields.get("Country").setValue("No Man's Land");
form.flattenFields();

Table table = new Table(UnitValue.createPercentArray(new float[]{1, 15}));
table.addHeaderCell("#");
table.addHeaderCell("description");
for (int i = 1; i <= 150; i++) {
table.addCell(String.valueOf(i));
table.addCell("test " + i);
}

doc.setRenderer(new DocumentRenderer(doc) {
@Override
protected LayoutArea updateCurrentArea(LayoutResult overflowResult) {
LayoutArea area = super.updateCurrentArea(overflowResult);
if (area.getPageNumber() == 1) {
area.getBBox().decreaseHeight(266);
}
return area;
}
});

doc.add(table);

doc.close();

最有趣的部分可能是关于扩展 DocumentRenderer。与文档关联的此类的实例处理其布局和重写方法 (updateCurrentArea),正如其名称所代表的那样,更新布局区域。

值得一提的是:所有 iText5 SO 答案均已移植到 iText7 中,您可以在 iText 网站上找到它们:https://developers.itextpdf.com/content/itext-7-examples .

关于java - 使用 iText7 (Java) 将表格添加到现有 PDF 并继续添加其他页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44036916/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com