【发布时间】:2019-06-30 15:58:50
【问题描述】:
我在使用 PDF 框拼合由 Adobe Acrobat DC 生成的 PDF 时遇到问题。
我创建的 Adobe Acrobat 文本字段绝对是默认文本字段。
在下面的示例中,我有一个 PatientName 字段,其文本值为 "Douglas McDouggelman"。
当我拼合 PDF 时,它是这样的:
有人知道这个奇怪的间距是怎么回事吗?
看来空格+下一个字符组合在一起了。这就是您尝试选择该角色时的样子。
代码:
try (PDDocument document = PDDocument.load(pdfFormInputStream)) {
PDDocumentCatalog catalog = document.getDocumentCatalog();
PDAcroForm acroForm = catalog.getAcroForm();
acroForm.getField("PatientName").setValue("Douglas McDouggelman");
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
if (flattenPdfs) {
acroForm.flatten();
}
document.save(byteArrayOutputStream);
}
【问题讨论】:
-
请分享 pdf 表格。
-
无法发送。安全等等。由于我的本地安全规则,甚至无法制作样本并上传。而且我无法从不安全的计算机上制作它,因为我在那个环境中没有 adobe acrobat DC。我会想办法的。
-
您可以在“那个环境”上下载 adobe acrobat 的 30 天试用版 .... (acrobat.adobe.com/ua/en/free-trial-download.html)
-
要尝试的另一件事:假设它是一个 PDTextField,请转换并执行 txtfield.getDefaultAppearance() 并输出那个。假设字体名称是 F5(如“/F5 12 Tf”)。记住该名称并访问 issues.apache.org/jira/browse/PDFBOX-4233 并查看代码行以替换默认资源中的字体。
-
/Helv 0 Tf 0 g
标签: java pdf pdfbox flatten-pdf