将xml插入pdf

时间:2017-02-06 23:55:38

标签: java xml pdf itext

我需要在.pdf中插入一个.xml(然后再对所有数字进行数字签名)。 我之后的实施指南告诉我插入我的xml数据,填充名为" XFAResources"的结构,如本例所示(我的数据包含在ClinicalDocument块中):

<Xfa: datasets xmlns: xfa = "http://www.xfa.org/schema/xfa-data/1.0/">
   <Xfa: date>
     <ClinicalDocument xmlns = "urn: hl7-org: v3" ...>
      ...
     </ClinicalDocument>
   </Xfa: date>
</Xfa: datasets>

有人能给我一些关于我该怎么办的信息吗? PDF都是由我生成的xml,第二个是使用iText5。

---更新---

我需要在PDF中执行插入,注入,XML,我必须为论文项目完成这项工作,并且给予我的唯一“限制”是编程语言,Java精确地用于我有完全的自由。

所以我使用Eclipse,创建/保存了我的XML并使用iText我创建/保存了PDF,这不是XFA表单,我决定使用内容和格式,现在我必须进行注入。

老师今天早上也告诉我,没有必要对文件进行最终签名。

那么你能推荐一种简单注射的方法吗?我相信通过iText是可能的,但不幸的是我无法理解。

提前感谢您的可用性。

1 个答案:

答案 0 :(得分:2)

您指的是XFAResources。 ISO-32000-1(也就是当前的PDF规范)中没有XFAResources这样的东西。 XFAResources引入了ISO-32000-2的早期草案之一(又称PDF 2.0,将于今年晚些时候发布),但在新规范的开发过程中被删除了。它不在FDIS(国际标准最终草案)中,这意味着它永远不会成为官方规范的一部分。

简而言之:您所关注的实施指南是错误的。如果(1.)您分享了该实施指南,并且(2.)要求其作者对其进行调整以使其反映官方标准,将会有所帮助。

至于你的问题:

  1. 我假设您有一个使用Adobe LiveCycle Designer创建的XFA表单,并且您希望将XML注入此表单。之前已经回答过这个问题:How to fill out a pdf file programmatically? (Dynamic XFA)
  2. 您希望签署表单,并在PAdES-5中描述签署XFA表单: PAdES for XML Content - XAdES的配置文件PDF文件中XML内容的签名。这是在iText中实现的,但不幸的是,我不知道其他任何实现。据我所知,Adobe有一个完全不同的实现,这使得无法验证在Adobe Reader中使用iText创建的PAdES-5(如果仍然如此,请与Adobe联系)。没有其他观众支持PAdES-5,XFA将在PDF 2.0中弃用(这大大降低了任何供应商投资进一步开发的机会)。
  3. 您不想签署表单,但您想签署展平表格。在这种情况下,您首先需要将XFA转换为真实PDF。 XFA表单只是包含在PDF结构中的XML,您需要Adobe LiveCycle ES或iText的XFA Worker等软件将该XML转换为常规PDF。这是非常专业的软件,不能作为开源软件使用。鉴于XFA将被弃用,任何人都很少有机会创建这样的软件作为开源软件。但是,如果您购买Adobe LiveCycle ES或iText的XFA Worker,您将能够创建一个可以使用PAdES-2(ISO-32000-1样式)或PAdES-3(新的)进行签名的文档。 ISO-32000-2)签名。
  4. 您在StackOverflow上询问了其他订阅者&#34;有人可以给我一些关于我该怎么做的信息吗?&#34; 我希望以上信息已经指出您的相关规范(ISO-32000-1和-2,PAdES-2,-3和-5),但遗憾的是,由于以下原因,您的问题不够准确,因此无法为您提供代码示例:

    • 您需要填充名为XFAResources的结构的假设是基于实施指南,该指南引用的结构从未成为官方标准。
    • 你并不完全清楚模板的本质:它真的是一个XFA形式吗?如果是这样,为什么? XFA表格即将过时。
    • 您并不完全清楚签名结果的性质:文档是否需要保留为XFA表单(PAdES-5),还是文档可以展平?