pdf,外观流,焦点丢失后复选框未正确显示
Posted
技术标签:
【中文标题】pdf,外观流,焦点丢失后复选框未正确显示【英文标题】:pdf, appearance streams, checkbox not shown correctly after focus lost 【发布时间】:2013-03-18 14:55:57 【问题描述】:我正在开发一个程序,将交互式表单生成为 PDF 文件。
生成的文件是here(源代码可读)。复选框位于页面底部。获得焦点后,它被正确渲染(带有红色/蓝色边框的白色正方形),在失去焦点后,正方形消失并显示默认外观(这对我来说不正确)。
在 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
【问题讨论】:
请贴出代码的亮点,方便所有想帮助你的人。 【参考方案1】:我对您的 PDF 的观察有些不同,但仍然很有趣:
Adobe Acrobat 9 Pro v9.5.4(禁用 PDF/A r/o 视图)完全符合您最初的预期:它只使用红色或蓝色框框。但是,如果一个人切换了该复选框,即使再次切换,它也希望保存一个对您的字段进行一些更改的新修订。
Adobe Reader X! v11.0.2 以 PDF/A 只读模式启动并显示红框。但是,在离开该 r/o 模式后,它会显示默认的交叉外观。当它获得焦点时,它再次使用红色和蓝色框架。当它失去焦点时,它会回到默认外观。
我在 Adobe Reader X 中观察到的行为!似乎是您在更多情况下观察到的情况。
因此本质上问题是在某些情况下(对我来说:不在 PDF/A r/o 模式下,不关注表单字段)一些 PDF vewers(对我来说:Adobe Reader XI)不使用您的自定义复选框外观,但有一些标准外观,您认为这是不正确。
不幸的是,在 PDF 规范 ISO 32000-1:2008 中有一个提示,根据该提示,查看者可能(甚至可能应该)这样做。 12.5.6.19 节中的表 189 Widget Annotations 解释了外观特征字典中的条目(小部件字典中 /MK 的值;您不提供一个,因此应用默认值),其中/CA:
文本字符串(可选;仅限按钮字段)小部件注释的普通标题, 不与用户交互时显示。
与此表中列出的其余条目不同,这些条目仅适用于 与按钮字段关联的小部件注释(请参阅 12.7.4.2,“按钮字段”),CA 条目可以与任何类型的 按钮字段,包括复选框(请参阅 12.7.4.2 中的复选框,“按钮 字段”)和单选按钮(12.7.4.2 中的单选按钮,“按钮字段”)。
特别是复选框,因此,只要不与用户交互,应使用他们的正常标题显示,而不是他们的出现。
当表单字段没有焦点时,Adobe Reader 似乎认为表单没有与用户交互,因此切换到显示标题而不是外观。
不幸的是,您可以为按钮定义的正常标题只是一个文本字符串,默认情况下似乎在 Zapf Dingbats 字体的上下文中进行解释(例如,尝试/MK<</CA(1)>>
)。不过,这是您应该继续寻找的地方,也许您可以使用您的设计中包含蓝色和红色方框的某些 Type 3 字体。
【讨论】:
是否可以“停用”该行为以便始终保持正常外观? @Lonzak 是否可以“停用”该行为 - PDF 规范要求此行为。因此,我怀疑它可以被停用;可能有一些不起眼的 PDF 查看器高级设置......但我真的怀疑它。以上是关于pdf,外观流,焦点丢失后复选框未正确显示的主要内容,如果未能解决你的问题,请参考以下文章