如果在 PDF 表单中多次出现,Java PDFBox 不会保持字段的字体外观
Posted
技术标签:
【中文标题】如果在 PDF 表单中多次出现,Java PDFBox 不会保持字段的字体外观【英文标题】:Java PDFBox does not maintain the font appearence of a field if it appears severraly in a PDF Form 【发布时间】:2017-06-21 15:53:56 【问题描述】:我需要从我的 java Web 应用程序动态填写 pdf 表单,我发现 PDFBox 非常有用,除了当我有多个同名字段时面临的问题或挑战。
我在一页 pdf 表单的不同位置有 5 个同名字段(比如说“wcode”)。此字段有不同的字体。通常,当您手动填写一个字段时,其他字段会自动选择相同的值,当我使用 PDFbox 填写它时会发生同样的情况,除了 PDFBox 将我的所有 5 个字段更改为与出现在 pdf 表单中的第一个字段具有相同的字体。
这是用于填写该字段的代码。
PDDocument _pdfDocument = PDDocument.load(new File(originalPdf))
PDAcroForm acroForm = _pdfDocument.getDocumentCatalog().getAcroForm();
PDTextField myCodeField = (PDTextField) acroForm.getField("wcode");
if (myCodeField != null)
myCodeField .setValue(my.getCode());
//Refresh layout && Flatten the document
acroForm.refreshAppearances();
acroForm.flatten();
_pdfDocument.save(outputFile);
我加了
acroForm.refreshAppearances();
经过一些研究,但这并没有改变任何东西。
因此,如果出现在 pdf 表单上的第一个“wcode”字段是 6pt,那么其余的所有其他“wcode”字段都是 6pt,即使我在外观属性中将它们设置为 12pt。
我正在使用 PDFBox 2.0.5
【问题讨论】:
请删除此问题并在 JIRA 中打开一个问题。不要忘记附上您的 PDF。 正如@TilmanHausherr 所建议的,我为相同的issues.apache.org/jira/browse/PDFBOX-3837创建了一个jira 【参考方案1】:这个问题已经在大约一个月前发布的 PDFBox 2.0.6 版本中得到解决。 Check comment on the jira 3837 here
【讨论】:
以上是关于如果在 PDF 表单中多次出现,Java PDFBox 不会保持字段的字体外观的主要内容,如果未能解决你的问题,请参考以下文章