2012-04-11 8 views
2

OPCドキュメントのフラットファイルXMLバージョンを取得しようとしています。JAVAのOPC(Open Packaging Convention)ファイルとフラットXMLファイルの変換

私はあなたがこのZIPファイルからフラットXMLファイルを作成し、コールがあるC++ではorg.apache.poi.openxml4j

からOPCPackageを使用しています。

誰でもJavaでこれを行う方法を知っていますか?

また、OPCやJavaに関連した良い読書はすばらしいでしょう。

どうもありがとう

乾杯

UPDATE:私は唯一の答えに行われたコメントに関連した...

コード

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

そうthatsのコードスニペット、それが結果にコンパイルエラー:

はシンボルsymbolを見つけることができません:メソッドマーシャル(java.io.FileOutputStreamは)場所:変数の型のflatOpcWorker org.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator

答えて

2

マイプロジェクトdocx4jは、これを行いFlatOpcXmlCreatorを持っています。 ConvertOutFlatOpenPackage sample

POI(JAXBではなくXML Beansを使用しています)と一緒に使用したい場合は、移植することができます。どちらのプロジェクトもASLで、どちらもOpenXML4JをベースにしたOPCの部分です。

+0

問題はこれがdocxではないということです。 OPCベースのフォーマット。 OPCの一般的なフォーマットでうまくいくのだろうか。 Docxがどのようにあなたのプロジェクトであるかわからないので私は尋ねています。そして、docx opcが他のopcベースのフォーマットと異なっているかどうかは分かりません。 – grobartn

+0

docxに固有のものは何もなく、コンストラクタはOpcPackageを受け取り、pptxとxlsxで動作しテストされています。方法マーシャル(java.io.FileOutputStreamは) 場所:変数flatOpcWorker – JasonPlutext

+0

ので、私はあなたの例をしようとしていますし、私はこの行のエラー worker.marshal(新規のFileOutputStream(outputfilepath) を取得するには、マーシャルは「シンボル シンボルを見つけることができないと言いますタイプがorg.docx4j.convert.out.flatOpcXml.FlatOpcXmlCreator " あなたはなぜそれがそうであるかを知っています – grobartn