将OPC(开放式打包约定)文件转换为JAVA中的平面XML文件
因此,我尝试获取OPC文档的平面文件XML版本 我正在使用org.apache.poi.openxml4j中的OPCPackage将OPC(开放式打包约定)文件转换为JAVA中的平面XML文件,java,openxml,docx4j,open-packaging-convention,Java,Openxml,Docx4j,Open Packaging Convention,因此,我尝试获取OPC文档的平面文件XML版本 我正在使用org.apache.poi.openxml4j中的OPCPackage C++中有一个调用,从这个压缩文件创建平面XML文件。 有人知道如何在Java中做到这一点吗 此外,任何与OPC和Java相关的好读物都将非常棒 非常感谢 干杯 更新:关于我的评论,我只回答 代码 这就是代码片段,它会导致编译错误: 找不到符号symbol:method marshal(java.io.FileOutputStream)位置:org.docx4j.
C++中有一个调用,从这个压缩文件创建平面XML文件。
有人知道如何在Java中做到这一点吗 此外,任何与OPC和Java相关的好读物都将非常棒 非常感谢 干杯 更新:关于我的评论,我只回答 代码 这就是代码片段,它会导致编译错误:找不到符号symbol:method marshal(java.io.FileOutputStream)位置:org.docx4j.convert.out.flatOpcXml.flatOpcXml Creator类型的变量FlatopCxWorker我的项目docx4j有一个FlatOpcXmlCreator来执行此操作;见
如果您想将其与POI(使用XMLBeans,而不是JAXB)一起使用,我想您可以对其进行移植。这两个项目都是ASL,都是基于OpenXML4J的OPC部分 问题是这不是一个docx。其基于OPC的格式。这将与OPC通用格式一起工作。我之所以这样问,是因为我不确定您的项目与Docx的具体关系如何。不知道有多大的不同如果是docx opc与其他基于opc的格式是不同的没有什么docx的具体内容,构造器采用OpcPackage,它已经过测试并与pptx和xlsx一起工作。所以我尝试了你的例子,我在这一行中遇到了错误。marshal(新文件输出流(outputfilepath))它说marshal“找不到符号symbol:方法封送(java.io.FileOutputStream)位置:类型为org.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator的变量flatOpcWorker。”“你知道为什么它会说soI认为你需要提出一个新的问题,包括你正在使用的Java代码、你提供的输入以及产生的堆栈跟踪。更改了它请查看并回答…我正在努力让它工作,以便我可以奖励你。。。
// imports
import org.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
// code snippet
WordprocessingMLPackage wmlPkg = null;
try
{
wmlPkg = WordprocessingMLPackage.load(inFile);
}
catch (Docx4JException ex)
{
//...
}
FlatOpcXmlCreator flatOpcWorker = new FlatOpcXmlCreator((wmlPkg));
flatOpcWorker.marshal(new FileOutputStream(tmpFlatFile.getAbsolutePath()));