gpt4 book ai didi

pdf-form - 设置 AcroForm 值时,XFA 值最初不可见

转载 作者:行者123 更新时间:2023-12-03 04:12:21 24 4
gpt4 key购买 nike

我想自动填写 AcroForm/XFA 双 PDF 表单。我包含了一个 XFA 数据集包,所有值都显示在 Adob​​e Reader 中。我将 AcroForms 条目中的 V= 键设置为新值,所有值都显示替代 PDF 阅读器。

但是,当我在 Adob​​e Reader 中打开包含 XFA 和 AcroForm V= 条目的 PDF 时,只有当前选定的文本字段的值可见:

Only the selected field shows text

我在 PDF specification 中找不到任何提及当 AcroForms 和 XFA 存在时要设置的特殊标志。我假设 XFAField 键的顺序可能很重要,但事实也并非如此。

如何更改my PDF file以便这些值在 Adob​​e Reader 启动时可见,在仅支持 AcroForms 而不支持 XFA 的 PDF 阅读器中可见?

最佳答案

有 2 个问题需要回答:

  1. 为什么 Adob​​e Reader 在选择字段时仅显示字段值?
  2. 如何判断使用的是AcroForm还是XFA?

1。显示字段值

在某些情况下,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 重新设置其值,它会自动生成外观流)。

    结果: appearance

    内部 PDF 结构:

    AP-RUPS

  • 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

    这将触发查看器生成所有外观: needappearances-true

2。 AcroForm 还是 XFA?

一般来说,支持 XFA 的查看器将显示 XFA 表单。不支持 XFA 的查看器将使用 AcroForm。您可以通过为相应的 AcroForm 和 XFA 字段设置不同的值来验证这一点。这是结果,左边是Chrome内置的PDF查看器(不支持XFA),右边是Acrobat: acro-vs-xfa

知道 Reader/Acrobat 使用的是 XFA 表单,为什么我们仍然看到空白字段(参见问题 1)?

看来,当 XFA 字段与其对应的 AcroForm 字段的值相同时,Reader/Acrobat 也会使用 AcroForm 中的一些信息,a.o.它的外观信息。当XFA值与AcroForm值不同时,AcroForm字段似乎被完全忽略。

TL;DR 将 NeedAppearances 设置为 true 以解决空白字段问题。不支持 XFA 的查看器将自动退回到 AcroForm。

(我的测试基于 Adob​​e Acrobat X。)

关于pdf-form - 设置 AcroForm 值时,XFA 值最初不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33899913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com