我有一个填充 PDF,它曾经使用一个简单的 XFDF 文件来填充。使用 VS.NET 2010,我阅读了 XFDF 文档并填充了所有必要的信息,并使用 ds.WriteXML(XFDFName) 填充了 PDF。XFDF 通过 Process.Start(XFDFName) 编写和启动。这一切都在 WinForms 应用程序中。这种方法已经像冠军一样工作了几年。到现在...
我遇到的问题是我无法将数据导出为 XFDF 格式,因为该文件是在 Adobe LiveCycle 中创建的。我注意到导出选项是 (1) XML 或 (2) XDP。在过去,我能够导出到 XFDF。我认为没什么大不了的,只是另一种格式。但是,我一直在为这两种选择而苦苦挣扎。经过一番考虑,我决定使用 XDP 格式。
我使用所需的所有信息构建了数据集,使用 Process.Start(XDPName) 打开新创建的 XDP 时收到错误消息。阅读器打开,我收到以下错误:“Adobe Reader 无法打开‘GUID_HERE.xdp’,因为它不是受支持的文件类型或文件已损坏(例如,它是作为电子邮件附件发送的,并且未正确解码)。”
我尝试对PDF使用直接的href,但这也不起作用。所以我选择将序列化的 PDF 粘贴在该部分的 XDP 中。
这个 XDP 文件看起来像这样(感谢 Dean J):
<?xml version='1.0' encoding='UTF-8'?>
<?xfa generator='AdobeDesigner_V7.0' APIVersion='2.2.4333.0'?>
<xdp:xdp xmlns:xdp='http://ns.adobe.com/xdp/'>
<xfa:datasets xmlns:xfa='http://www.xfa.org/schema/xfa-data/1.0/'>
<xfa:data>
XML is here - matching the dynamic fields in the PDF.
</xfa:data>
</xfa:datasets>
<pdf xmlns=\"http://ns.adobe.com/xdp/pdf/\"><document>
<chunk>
Base64 encoded PDF
</chunk>
</document></pdf>
</xdp:xdp>
我认为我正在生成的 XDP 是伪造的 - 但更复杂的是 - 如果我打开阅读器单击工具 > 表单 > 更多表单选项 > 管理表单数据 > 导入数据并选择我生成的 XDP 文件,所有字段按照我的预期填充。
所以基本上,某处显然存在脱节:我有一个 XDP 文件,其中包含我需要的所有信息。我有一个需要用 XDP 文件填充的 PDF 表单。XDP 中的信息与 PDF 中的所有控件名称正确匹配。但是当我启动 XDP 文件时,Reader 告诉我它已损坏/不受支持。据我了解,当您启动 XDP 文件时,它应该使用 Reader 正确启动/填充,对吗?
任何信息都会极大地帮助我。谢谢。