在文本字段iText PDF中重叠字符

时间:2013-12-05 13:20:53

标签: java pdf itext overlapping

我的PDF文本字段包含一些字符。但语言特定的字符是重叠的。 当它获得焦点时,文本会更改并正确显示。失焦时,显示不正确。 编辑文本时也会正确显示。

文件 test_extended_filled.pdf 请参阅下面的

我是如何创建PDF的:

  1. 在OpenOffice Draw 4.0.1中创建了odg模板 - > test.odg
  2. 导出为PDF - >检验.pdf
  3. 使用Adobe Acrobat X Pro 10.0.0编辑test.pdf并使用扩展功能重新保存(需要保存在本地PC上) - > test_extended.pdf
  4. java填写表格(pdfstamper) - > test_extended_filled.pdf
  5. 奖励:当我在java中通过pdfstamper更改字体时,看起来更改仅应用于聚焦文本。 - > test_extended_filled_font_size.pdf

    注意:当我从2.填写 test.pdf 时,它显示正确 - > text_filled.pdf

    附加文件(转到下载部分): https://rapidshare.com/share/ACC0D81E9235A6DA2CC2353BD21A4C37

    我添加

    stamper.getAcroFields().addSubstitutionFont
    

    它更好,但有些角色仍然重叠。 - >的 test_extended_filled_font_size_with_substitution_font.pdf http://rapidshare.com/share/0EE3238F37E9115C36A7A74706B09826

    有什么想法吗?

1 个答案:

答案 0 :(得分:0)

请查看FillFormSpecialChars示例和resulting PDF

Open Office并不能真正创建出色的表单。正如mkl已经指出的那样, NeedAppearances 标志可能会导致问题,字段的边框被绘制到页面内容上,而不是作为窗口小部件注释的一部分等...

在您的情况下,您已经定义了一种不适合特殊字符的字体。使用替换字体并不理想,因为您可以清楚地看到绘制字形并不是一个问题。问题是指标都是错误的。就好像特殊字符具有0个字形单位的前进一样。在这种情况下,您应该使用setFieldProperty()方法更改字体。