0

这是关于使用 org.apache.pdfbox 从 java 代码创建新的 pdf 文件时文本重叠的问题,问题不知道如何在 win7 工作站上解决:

  1. pdf文件模型:

" Melléklet a szállítólevélhez: xxx

数据:xxx

"

  1. 用java代码创建新的pdf文件替换“xxx”:

"

Melléklet a szállítólevélhez: 26201738

日期:2019-05-02 14:49:00

"

除了“26201738”重叠显示(这里不能放图像)还有“2019-05 -02 14:49:00”。重叠字符的最大长度分别为 4 和 8。

在具有相同 java_update 版本的 win7 和具有相同 eclipse 和相同 java 代码的相同工作区 eclipse 的 2 个不同工作站上,它正在创建没有重叠文本的 pdf 文件。

我已经尝试将相同的字体复制到错误的工作站阴性结果中。试图将“地区和语言”切换到德国,正好是另一个站 - 没有结果。尝试更新到 Acrobat Reader DC - 没有结果。似乎工作站操作系统在使用 org.apache.pdfbox 创建新 PDF 时缺少一些东西,并且无法弄清楚它是什么?由于其他 2 个站点在生成新的 PDF 文件时工作正常,因此排除了 java 代码问题。

最好的问候,劳伦蒂乌

4

2 回答 2

1

您的源 PDF 的“2”、“3”、“7”和“9”的宽度为零。这可以通过Root/Pages/Kids/[0]/Resources/Font/F1/Widths使用 PDFDebugger 查看。Root/Pages/Kids/[0]/Resources/Font/F1/FirstChar是 32,因此可以在位置 16 找到“0”(代码 48)。创建原始 PDF 的任何人/任何人只设置所用字符的宽度。这是在现有 PDF 中替换文本的众多陷阱中的又一个,这就是该示例被删除的原因。

我建议不要使用“xx x”,而是使用 acroform 字段或将日期/客户端# 放在预定义的位置。

于 2019-05-09T08:24:42.580 回答
0

问题解决了!看来需要替换“xxx”并从他那里创建一个新模型的pdf模型内部有问题。我已经用一个好的文件替换了 PDF 文件模型,现在一切正常。感谢你并致以真诚的问候!

于 2019-05-06T11:56:41.510 回答