问题标签 [xfa]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
pdf - 有没有办法展平(以编程方式)填写的 XFA PDF 表单,以便可以在浏览器中很好地打开它?
我有一个已经填写好的 XFA PDF,现在我想将其转换为更兼容的格式,以便可以在浏览器中直接打开它,而不是显示空白文档(糟糕的用户体验)。
有没有办法可以“展平”(以编程方式)XFA PDF,使其成为一个直接的 PDF?
我正在使用 Java 并有这些导入:
代码是这样的:
java - 如何使用 PDFtk 或 PDFBox 填写数字签名的 PDF?
我正在尝试打开此 PDF 文件以自动填写表格:DA1059
PDFtk、PDFBox、Chrome 的 PDF 查看器和 Mac OSX 预览应用程序都无法打开 PDF。
但是,Adobe Reader 或 Acrobat 成功打开 PDF 而不提示输入密码。
PDFtk错误:
PDFBox错误:
Tilman Hausherr 指出这是一个XFA 表格。Stack Overflow 上有几个相关的问题:
我在https://github.com/jschaf/pdfxfa开始了一个最小的工作示例。
不支持
在 PDFBox 中使用 XFA 和认证表单取决于当前不支持的增量更新。请参阅PDFBOX-2859 支持增量更新。
forms - iTextSharp 生成的 Adobe Livecycle (XFA) 表单在 Acrobat 和 Reader 中的呈现方式不同
编辑:链接到下面的测试文件。
作为项目的一部分,我在 LiveCycle Designer 11.0 中创建了动态 PDF 表单。这些表单在转发给开发人员之前设置为在 Acrobat 中启用阅读器。然后,他使用 iTextSharp 5.5.6 填充 PDF。
该表单具有许多动态属性,包括隐藏字段、动态子表单等。
当生成的表单在 Adobe Reader 11.0.12(我的版本,但其他版本受到影响)中打开时,表单是 a) 只读的并且 b) 不显示所有动态字段,即使已满足显示它们的条件他们已经充满了数据。显示了一些。
当它在 Adobe Acrobat 11.0.9 中打开时,表单按预期呈现。部分和字段根据表单的逻辑显示/隐藏。该表格也是可填写的,它不是只读的或展平的。
当我比较 Acrobat 和 Reader 中表单的安全设置时,Acrobat 中的“填写表单域”设置设置为“允许”,而在 Reader 的安全设置中设置为“不允许”。
这是一个包含以下内容的 zip 链接:1) 在 iTextSharp 中生成的动态 PDF 2) 为表单自动生成的类文件 3) 数据映射 Program.cs 文件
当文件在 Acrobat 中打开时,它会按预期工作。当它在 Reader 中打开时,它变为只读并同时显示 SignatureA 和 SignatureB,此时根据在 Signature Test 部分中选择了哪个单选按钮,只应显示一个。
我无权访问代码库,因此无法最终测试应用程序。iTextSharp 中是否有任何设置可能导致此问题?
感谢您的任何帮助,您可以提供!
java - 来自 xfa:datasets/xfa:data 的 XFA pdf 丢失
我正在尝试在 itext 的帮助下填写 XFA 表格。到目前为止,我曾经能够读取空表单的 xfa:data 部分以及 dd:description 元素,并使用 dd:description 来了解 XML 的结构,动态创建 XML 并填充表单.
但是我在代码中的逻辑是假设 xfa:data 将始终存在,尽管空元素是空形式。最近,pdf 已更改,只有在填写并保存表单中的任何元素后才会创建 xfa:data 部分。
我认为 Adobe Live Cycle 设计器中有一些 javascript 在起作用,以实现这一点。我无权访问 Adobe Live Cycle Designer,也无法修改表单的结构。
我想知道,我能否以某种方式触发 xfa:data 部分的创建,就像我使用 itext 在表单中填写内容一样?然后我的代码的其余部分将按原样工作。
我不能使用 dd:description 创建整个 XML,因为表单在 XML 中有一些隐藏元素,这些元素默认为某些值。我需要填充这些值,这就是为什么我说我可以触发 xfa:data 的创建,就像有人在表单中填写值一样。
javascript - Spider Monkey 动态创建的脚本(来自 JS),附加到一个对象
我正在开发一个利用 Spider Monkey 运行我们的 JS 的应用程序。我只有一个对象类型 (JSNode),它充当复杂 DOM 的接口,该复杂 DOM 由具有属性和方法的各种对象组成。一切都是即时创建和注册的。我遇到了一个问题,我有一个需要动态关联的函数的对象。问题是当我从关联对象的上下文中运行脚本时,NewResolve(我通常用来识别和定义属性),据我所知,我不知道这是一个允许我定义函数的函数定义在飞行中。我不明白 JS_CompileScript 会正确构建函数并将其与 HandleObject 关联。我当然可以
关于这个问题的任何想法或指导?
xml - 如何使用itext从文本文件中的数据填写(动态XFA)PDF
我有一个本地 PDF 表单,它有一个永远不会改变的特定模板。我已将该表单标识为 XFA (xml) 动态表单,因为没有返回任何键集。我正在尝试使用 itext 使用 .txt 文件中包含的数据填写表单。据我了解,我需要以某种方式从文本文件中获取数据并将其正确放入 .xml 文件中,以便 itext 可以使用给定的 xml 操作原始 PDF。
该表单具有以下布局示例:
我在 Eclipse 中使用的示例代码编译/运行成功,但它需要文件data.xml
中的数据才能用字段数据填充空表单并输出填充的版本。问题是,对于我的实际项目,我没有用于正确填充表单的 data.xml 文件。原始字段数据位于 .txt 文件中,每行包含 PDF 中不同字段的数据。
示例:参考上面的图片,我的 .txt 文件看起来像这样,直到并包括标记为“FOUR”的字段:
- 约翰
- 15
- 黑色的
- 本田
- 丰田
- 福特
- 宝马
我对两件事感到困惑:
1.如何提取原始 PDF 的 xml 结构,以便在使用 .txt 文件中的数据填充它时知道要遵循的格式?
2.如何从文本文件中获取值并将它们正确插入到 .xml 结构中?
以下代码有效,但需要data.xml
填写“incomplete.pdf”。它使用代码xfa.fillXfaForm(new FileInputStream(XML));
输入数据,但我一直坚持如何识别“XML”的结构以及如何首先填写它。
任何帮助表示赞赏,非常感谢。
代码:
java - 如何自动填写 XFA (PDF) 表格?
我正在寻找填写 XFA PDF 表格的免费选项。我知道 iText 是一种选择,但它们的商业价格对我来说太贵了,我更喜欢完全开源的东西。有 PDFBox,但它似乎不允许将数据插入 XFA 表单,或者至少很少解释如何插入数据。
我只需要用文本文件中的某些数据填写表单中的某些字段。您能推荐或指导我找到解决方案吗?非常感谢
javascript - 从 PDF 表单 XFA 中的元数据行获取时间戳和 uuid 值
我有一个动态 XFA 表单,其中包含要填写的 3 页字段。我使用名为 iText 的软件将 XFA 提取到 .XML 文件中。以下是 XML 中的前两行:
有没有办法通过将 .js 文件写入 Adobe 的文件夹级别来提取timeStamp
和提取的值?uuid
目前,我正在使用以下 javascript 代码,使用受信任的函数导出 XML。
您可以看到它如何将“savedform.xml”保存到桌面。我可以在下面包含哪些代码来获取 timeStamp 和 uuid 值并将它们写入桌面上的单独文本文件?
我试过用代码显示警报,xfa.resolveNode("xdp:xdp.timeStamp");
但
var x = document.getElementsByTagName("xdp:xdp")[0].getAttribute("timeStamp");
没有运气。
非常感谢
c# - 使用 iTextSharp 展平动态 pdf
我正在使用 itextsharp 从模板 pdf 文件创建 pdf。但是新的 pdf 文件是像动态 pdf 一样创建的。我想将此文件转换为静态 pdf 文件,所以我尝试使用xfaworker。我从 itextsharp.licensekey.dll 收到“签名已损坏”错误。我如何使用 xfaworker 或其他 dll 来展平动态 pdf?
forms - 如何使用 iText 填充 XFA,使其与 Foxit Reader 兼容
我使用网络上提供的示例来创建一个应用程序,该应用程序能够获取 XFA 表单的 xml 结构,然后将其重新填充。重要代码如下所示:
当我使用它来填写此表格时:http ://www.vzp.cz/uploads/document/tiskopisy-pro-zamestnavatele-hromadne-oznameni-zamestnavatele-verze-2-pdf-56-kb.pdf它工作正常并且我可以在 Acrobat Reader 中看到填写好的表格。但是,如果我在 Foxit Reader 中打开文档,我会看到一个空白表格(在最新版本和 5.x 版本中测试)。
我试着玩了一下,得到了这些XfaForm(...).getDomDocument()
数据:
Acrobat Reader填写: http
://pastebin.com/kXKyh9EM Foxit Reader 填写
: http
://pastebin.com/tiZ7EmfE iText 填写:http
://pastebin.com/tTKLMERC iText
填写后由 Foxit Reader 填写: http: //pastebin.com/Uuq0jS4b
填写的字段是 。是否有可能以即使与 Foxit Reader 一起使用的方式使用 iText(并且 XFA 签名仍然存在?)