Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将xml插入pdf_Java_Xml_Pdf_Itext - Fatal编程技术网

Java 将xml插入pdf

Java 将xml插入pdf,java,xml,pdf,itext,Java,Xml,Pdf,Itext,我需要在.pdf文件中插入一个.xml文件(然后对所有文件进行数字签名)。 我所遵循的实现指南告诉我插入填充名为“XFAResources”的结构的xml数据,如本例所示(我的数据包含在ClinicalDocument块中): ... 有人能告诉我怎么做吗? 这两个xml文件都是由我生成的,第二个是使用iText5生成的 ---更新--- 我的需要是执行插入、注入、PDF格式的XML,我必须为一个论文项目做这项工作,给我的唯一“限制”是编程语言,确切地说是Java,其余的我完全自由 因此,我

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


...
有人能告诉我怎么做吗? 这两个xml文件都是由我生成的,第二个是使用iText5生成的

---更新---

我的需要是执行插入、注入、PDF格式的XML,我必须为一个论文项目做这项工作,给我的唯一“限制”是编程语言,确切地说是Java,其余的我完全自由

因此,我使用Eclipse创建/保存了我的XML,使用iText创建/保存了PDF,它不是XFA表单,具有我决定的内容和格式,现在我必须进行注入

老师今天早上还告诉我,没有必要在文件上签字

你能推荐一种简单的打针方法吗?我相信通过iText是可能的,但不幸的是,我不明白怎么做


提前感谢您的可用性。

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

简而言之:您遵循的实施指南是错误的。如果(1)您共享了该实施指南,并且(2)要求其作者对其进行修改以使其反映官方标准,这将有所帮助

至于你的问题:

  • 我假设您有一个使用AdobeLiveCycle Designer创建的XFA表单,并且希望将XML注入该表单。这个问题以前已经被问过了:
  • 您需要对表单进行签名,签名XFA表单在PAdES-5:PAdES for XML Content–PDF文件中XML内容的XAdES签名配置文件中进行了描述。这是在iText中实现的,但不幸的是,我不知道还有其他实现。就我所记得的,Adobe有一个完全不同的实现,这使得无法在Adobe Reader中验证使用iText创建的PAdES-5(如果这仍然是真的,请与Adobe联系)。没有其他查看器支持PAdES-5,PDF 2.0中将不推荐使用XFA(这大大降低了任何供应商投资于进一步开发的可能性)
  • 您不想在表单上签名,但想在展开的表单上签名。在这种情况下,首先需要将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中新增)签名的文档
  • 您在StackOverflow上询问了您的其他订户“有人能告诉我一些如何操作的信息吗?”我希望上述信息已经向您指出了相关规范(ISO-32000-1和-2、PAdES-2、-3和-5),但不幸的是,无法给您提供代码示例,由于以下原因,您的问题不够准确:

    • 您认为需要填充名为
      XFAResources
      的结构是基于一个实施指南,该指南引用了一个从未成为官方标准的结构
    • 您还不完全清楚模板的性质:它真的是XFA表单吗?若然,原因为何?XFA表单即将过时
    • 您还不完全清楚签名结果的性质:文档是否需要保持XFA表单(PAdES-5),还是可以将文档展平

    首先感谢您的回答。您完全正确,不幸的是,我基于错误的实施指南。恐怕我没有很好地解释我的问题,我编辑了这个问题,试图更好地解释我的问题。我不认为有任何使用XFA的要求,所以如果我是你,我会尽可能远离XFA,而是使用XFDF。请参阅以获取完整的示例(如果遵循该示例,则所有工作都已完成)。额外的好处:填写的AcroForm可以很容易地签名。我不想使用XFA,确实是因为你说我会避免使用它。然而,我不确定它的解决方案是否是我所需要的。我的PDF与定义的数据是静态的,我不需要使用XML编译它。我只是把它放在里面,可能解决方案比你想的要简单。也许正如kml所说,将XML文件附加到PDF就足够了。您所说的“注入”到底是什么意思?内容是要显示在PDF页面上还是将文件作为附件就足够了?(在后一种情况下,我认为这仅仅是项目的一小部分,因为这是一项微不足道的任务。)@mkl正是,事实上,这一点只是我论文工作的一小部分。我有一个“CDA”,即XML格式的临床文档,我必须将其添加到包含基本相同信息的PDF中,第一个文档的目的是由机器处理,而第二个文档的目的是由人阅读。如前所述,我可以选择如何修复它,但我必须尝试以有效的方式进行修复
    <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>