【问题标题】:PDF Box flatten PDF causes weird spacingPDFBox 展平 PDF 导致奇怪的间距
【发布时间】:2019-06-30 15:58:50
【问题描述】:

我在使用 PDF 框拼合由 Adob​​e Acrobat DC 生成的 PDF 时遇到问题。

我创建的 Adob​​e 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


【解决方案1】:

我意识到这个 PDF 来自其他一些制作它并且知道他们做了什么的团队。所以我找到了源word文档,从Adobe DC重复创建表单,将字段添加回文档,然后就完全没问题了。

PDF 框不是问题...最初准备 pdf 的人做了一些未知的错误步骤。

【讨论】:

    猜你喜欢
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    • 2021-05-28
    • 1970-01-01
    相关资源
    最近更新 更多