- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想自动填写 AcroForm/XFA 双 PDF 表单。我包含了一个 XFA 数据集包,所有值都显示在 Adobe Reader 中。我将 AcroForms 条目中的 V=
键设置为新值,所有值都显示替代 PDF 阅读器。
但是,当我在 Adobe Reader 中打开包含 XFA 和 AcroForm V=
条目的 PDF 时,只有当前选定的文本字段的值可见:
我在 PDF specification 中找不到任何提及当 AcroForms 和 XFA 存在时要设置的特殊标志。我假设 XFA
和 Field
键的顺序可能很重要,但事实也并非如此。
如何更改my PDF file以便这些值在 Adobe Reader 启动时可见,和在仅支持 AcroForms 而不支持 XFA 的 PDF 阅读器中可见?
最佳答案
有 2 个问题需要回答:
在某些情况下,Adobe Reader/Acrobat 会根据是否选择表单字段而以不同方式显示表单字段。对于具有已定义外观的字段来说,这是典型的情况,该外观与 Reader/Acrobat 根据其值(可能还有一些外观设置)呈现字段的方式不同。
未选择该字段时,将显示定义的外观。选择该字段后,将显示 Reader/Acrobat 如何呈现该字段的预览。
一些背景:
表单字段由称为字段字典的逻辑部分(字段名称、字段值...)和称为小部件注释的可视化部分组成>。小部件注释可以选择包含 AP 条目,其中包含定义其可视化的外观流。比照。 PDF 规范,1.7,表 8.15:
AP - dictionary - An appearance dictionary specifying how the annotation is presented visually on the page.
在示例 PDF 中,没有 AP 条目,即空白可视化。这是所有字段的显示内容。选择字段时,您会根据字段值看到 Reader/Acrobat 的预览。
您可以通过使用 Reader/Acrobat 手动更改字段值来验证这一点。在这种情况下,将生成并保存新的外观。现在,无论是否选择该字段,都会以相同的方式显示该字段。
防止 Reader/Acrobat 中出现这些“空白”字段的两个选项:
为所有表单字段生成外观流。我已经对一个字段执行了此操作(只需使用 iText 重新设置其值,它会自动生成外观流)。
内部 PDF 结构:
将 AcroForm 字典中的 NeedAppearances 条目设置为 true
。比照。 PDF 规范,1.7,表 8.67:
NeedAppearances - boolean - A flag specifying whether to construct appearance streams and appearance dictionaries for all widget annotations in the document
一般来说,支持 XFA 的查看器将显示 XFA 表单。不支持 XFA 的查看器将使用 AcroForm。您可以通过为相应的 AcroForm 和 XFA 字段设置不同的值来验证这一点。这是结果,左边是Chrome内置的PDF查看器(不支持XFA),右边是Acrobat:
知道 Reader/Acrobat 使用的是 XFA 表单,为什么我们仍然看到空白字段(参见问题 1)?
看来,当 XFA 字段与其对应的 AcroForm 字段的值相同时,Reader/Acrobat 也会使用 AcroForm 中的一些信息,a.o.它的外观信息。当XFA值与AcroForm值不同时,AcroForm字段似乎被完全忽略。
TL;DR 将 NeedAppearances 设置为 true
以解决空白字段问题。不支持 XFA 的查看器将自动退回到 AcroForm。
(我的测试基于 Adobe Acrobat X。)
关于pdf-form - 设置 AcroForm 值时,XFA 值最初不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33899913/
这是当前的问题:我有一个由第三方创建的 XFA 表单,我想按原样使用它。我能够通过以下方式生成带有填充字段的 PDF: a) Extracting the XML via Acrobat Pro b)
我在 iText/iTextSharp(iTextSharp 5.3.3 通过 NuGet)中遇到了一个非常奇怪的 XFA 表单问题。我正在尝试填写静态 XFA 样式的表单,但我的更改没有生效。 我有
从 PDF 表单中删除 XFA 格式是否会出现任何问题?我正在使用 PDFTK 填写表单,发现如果表单是 XFA,那么除非我先执行 drop_xfa 命令来创建新的模板表单,否则 PDFTK 不起作用
我想创建一个包含 XFA 数据的 PDF,但我不希望在查看 PDF 时看到 XFA 数据,但是,我希望可以通过以下代码访问它: ByteArrayOutputStream baos = new Byt
我正在尝试获取 XFA 表单中所有字段的简单列表。我正在使用这段代码: private void ListFieldNames() { string pdfTemplate = @"C:\Pr
我需要将预填充的 PDF/XFA 表单设置为只读(因为没有任何输入,例如文本、复选框、单选按钮等可以更改它们的值)。 对于常规的 AcroForms PDF 和静态 XFA 表单,我可以通过调用 se
工作流程是这样的: 我们下载模板表单,预填充静态值,导出 XML 模板 使用 .NET 表单应用解析 XML,添加动态值 需要将生成的 XML 导入回 PDF 模板 在 iTextSharp 上使用
我有一个不包含 XFA 数据的 PDF。我想做的是,创建一个 XFA 表单模板 以编程方式 (不是使用 Adobe LiveCycle 或类似程序),然后将其嵌入到 PDF 中,然后填写 XFA
我有一个 XFA 表单(在 Adobe Designer ES4 中编写),其中在字段上定义了更改事件处理程序。当表单呈现为 PDF 并在 Reader 中打开时,更改事件处理程序工作正常。 但是
我正在寻找一种将 PDF XFA 文件转换为普通 PDF 文件的方法,该文件可以通过 Imagemagick 或 Ghostscript 等进行处理和/或压缩。我发现的所有选项只是删除 XFA 标签,
我想在 LiveCycle Designer ES -2 中开发一个交互式 XFA 表单,它将支持 Windows 和 iPad。但问题是当我打开 XFA 表单时它不显示表单而是显示无法显示表单(如果
我有一个基于 XFA 的 pdf 表单,我们需要使用 java 来填充它。你能建议最好的方法吗?我能够使用 iText 为 pdf 生成 xfa xml。 public void readXfa(St
我在 LiveCycle ES2 中创建了一个动态表单,它试图从 Access 数据库中提取数据。连接已在“数据 View ”选项卡中以“SpecsIn”名称正确设置。我通过 Adobe 网站和其
我正在编写一个需要读取 XFA 和 AcroField 模板的 C# 应用程序。由于公司的规模和可能与应用程序相关的现有 PDF 文档的数量,选择一个并使用它是不可能的。 我目前正在使用 iTextS
我想用 PDFBox java 库填写 PDF 表单。PDF 表单是使用 Adobe Live Designer 创建的,因此它使用 XFA 格式。 我试图找到有关使用 PDFBox 填写 XFA
早上好。我希望有人可以帮助我解决这个问题。去年,我使用 iTextSharp 设置了一个 VB.NET 程序,用户可以在其中输入信息以填写 I9,该信息将填写 PDF 并打印。对于新的 I9,我遇到了
代码: using (FileStream pdf = new FileStream("C:/test.pdf", FileMode.Open)) using (FileStream xml = ne
我假设我需要展平 XFA 表单以便在使用 Nuance 的 CSDK 的应用程序的 UI 上正确显示。当我现在处理它时,我收到一条通用消息“请稍候......如果这条消息最终没有被替换......”。
我想自动填写 AcroForm/XFA 双 PDF 表单。我包含了一个 XFA 数据集包,所有值都显示在 Adobe Reader 中。我将 AcroForms 条目中的 V= 键设置为新值,所有
我使用 Adobe LiveCycle Designer 创建了一个 PDF 表单。我现在正努力在填写完 PDF 后以编程方式从 PDF 中提取数据。 我尝试使用 poppler (qt4 绑定(
我是一名优秀的程序员,十分优秀!