Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.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
将OPC(开放式打包约定)文件转换为JAVA中的平面XML文件_Java_Openxml_Docx4j_Open Packaging Convention - Fatal编程技术网

将OPC(开放式打包约定)文件转换为JAVA中的平面XML文件

将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.

因此,我尝试获取OPC文档的平面文件XML版本

我正在使用org.apache.poi.openxml4j中的OPCPackage

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()));