为什么我们生成的PDF与交互式表单在Adobe Reader和其他PDF查看器中显示不同?

时间:2012-03-23 08:58:28

标签: pdf adobe-reader

在我们的网络应用程序中,我们为客户提供了制作一些用户生成的HTML表单的PDF的选项。 PDF文件由OpenOffice 3.3创建,生成的PDF包含交互式表单字段。

问题是,预填充数据的字段在不同的PDF查看器上显示不同。在Adobe Reader中,字段看起来像这样,字段底部(和部分隐藏)的值为:

PDF in Adobe

在福昕阅读器(以及我尝试的其他读者)中,PDF看起来像这样:

enter image description here

为什么会这样?

编辑:关注yms'建议; This is an example PDF有问题的互动表单字段。

1 个答案:

答案 0 :(得分:1)

PDF文件的Font对象中有一些奇怪的东西。字体描述符的 Descent 属性似乎有一个不正确的值,被第三方读者忽略或纠正,但它被Adobe Acrobat Reader“尊重”。

来自PDF Reference Document

  

属性:下降
  类型:编号
  描述:(必需,类型3字体除外)基线以下的最大深度
  由此字体中的字形到达。 该值为负数。

在您发布的文件中,字体描述符如下所示:

12 0 obj
<< /类型/ FontDescriptor / FONTNAME / CourierNewPSMT
/旗帜5
/ FontBBox [-121-679 622 1021]
/ ItalicAngle 0
/ Ascent 832
/ Descent 300 < - 这家伙应该是负面的
/ CapHeight 1020
/ StemV 80>>
endobj

作为一种解决方法,您可以尝试在生成这些文件的任何工具上使用不同的字体,或者您可以尝试将问题报告给该工具的开发人员。