【发布时间】:2012-04-03 13:32:57
【问题描述】:
我有一个填充 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 could not open 'GUID_HERE.xdp' because it is either not a supported file type or because the file has been damaged (for example, it was sent as an email attachment and wasn't correctly decoded)."
我尝试对 PDF 使用直接的 href,但也没有用。所以我选择将序列化的 PDF 粘贴在该部分的 XDP 中。
此 XDP 文件如下所示 (thanks 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 正确启动/填充,对吗?
任何信息都会极大地帮助我。谢谢。
【问题讨论】:
标签: .net winforms pdf adobe xdp-pdf