0

我正在开发一个将交互式表单生成为 PDF 文件的程序。

生成的文件在这里(源代码可读)。复选框位于页面底部。获得焦点后,它被正确渲染(带有红色/蓝色边框的白色正方形),在失去焦点后,正方形消失并显示默认外观(这对我来说不正确)。

  • 在 Acrobat 9、X、XI
  • 在内置的 chrome pdf 查看器中它工作正常
  • Adobe XI Pro - 预检 - 显示警告“表单域有多个外观”

我找不到错误。

谢谢你的帮助。

那里描述的相同(类似)问题: http ://forums.adobe.com/message/5144579#5144579

----这是pdf文件的一部分,我预计会出错

2 0 obj
<<
  /Type /Catalog
  /Pages 1 0 R
  /OutputIntents [7 0 R]
  /Metadata 8 0 R
  /PageLabels 10 0 R
  /AcroForm 14 0 R
>>

endobj

14 0 obj
<< 
  /Fields [13 0 R] 
>>
endobj

13 0 obj
<<
  /Type /Annot
  /Subtype /Widget
  /Rect [20.0 20.0 120.0 120.0]
  /FT /Btn
  /F 4
  /T (name)
  /AS /Yes
  /V /Yes
  /AP << 
        /N <<
             /Yes 11 0 R
             /Off 12 0 R >>
   >>
>>
endobj


11 0 obj
<<
  /Type /XObject
  /SubType /Form
  /BBox [20.0 20.0 120.0 120.0]
  /Length 19 0 R
>>
stream
  ....
endstream
endobj

12 0 obj
<<
  /Type /XObject
  /SubType /Form
  /BBox [20.0 20.0 120.0 120.0]
  /Length 20 0 R
>>
stream
  ....
endstream
endobj
4

1 回答 1

2

我对您的 PDF 的观察有些不同,但仍然很有趣:

  • Adobe Acrobat 9 Pro v9.5.4(禁用 PDF/A r/o 视图)完全符合您最初的预期:它只使用红色或蓝色框框。但是,如果一个人切换了该复选框,即使再次切换,它也希望保存一个对您的字段进行一些更改的新修订。

  • Adobe 阅读器 X!v11.0.2 以 PDF/A 只读模式启动并显示红框。但是,在离开该 r/o 模式后,它会显示默认的交叉外观。当它获得焦点时,它再次使用红色和蓝色框架。当它失去焦点时,它会回到默认外观。

我在 Adob​​e Reader X 中观察到的行为!似乎是您在更多情况下观察到的。

因此,本质上问题是在某些情况下(对我来说:不在 PDF/A r/o 模式下,不关注表单字段)一些 PDF vewers(对我来说:Adobe Reader XI)不使用您的自定义复选框外观但是一些标准的,你认为这是不正确的。

不幸的是,在 PDF 规范ISO 32000-1:2008中有一个提示,根据该提示,查看者可能(甚至应该)这样做。12.5.6.19小部件注释部分中的表 189解释了外观特征字典中的条目(小部件字典中/MK的值;您不提供,因此应用默认值),其中/CA

文本字符串(可选;仅限按钮字段)小部件注释的正常标题,应在不与用户交互时显示。

与此表中列出的其余条目不同,这些条目仅适用于与按钮字段关联的小部件注释(请参阅第 12.7.4.2 节中的按钮,“按钮字段”),CA条目可以与任何类型的按钮字段一起使用,包括复选框(请参阅第 12.7.4.2 节中的复选框,“按钮字段”)和单选按钮(第 12.7.4.2 节中的单选按钮,“按钮字段”)。

因此,特别是复选框,无论何时不与用户交互,都应使用它们的正常标题而不是它们的外观来显示。

当表单域没有焦点时,Adobe Reader 似乎认为表单没有与用户交互,因此切换到显示标题而不是外观。

不幸的是,您可以为按钮定义的正常标题只是一个文本字符串,默认情况下似乎在 Zapf Dingbats 字体的上下文中进行解释(/MK<</CA(1)>>例如尝试)。不过,这是你应该继续寻找的地方,也许你可以让它使用你设计的一些 Type 3 字体,其中包含一个蓝色和一个红色的方框。

于 2013-03-19T10:17:49.747 回答