2016-10-19 3 views
0

私はJODConveter(OpenOffice)を使用しているdocxをdocxに変換する必要がありますが、残念ながら私のコードは2074というエラーコードで破損しています。 errorCodeとはどのように修正できるかを意味します。JODConveterを使用したdocxからdocxへの変換がerrorCodeで失敗する:2074

私のコードは次の共有されます。

OfficeManager officeManager = 
    new DefaultOfficeManagerConfiguration().setOfficeHome(
    new File("C:\\Program Files (x86)\\OpenOffice4")).buildOfficeManager(); 

officeManager.start(); 

OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager); 

DocumentFormat docx = converter.getFormatRegistry().getFormatByExtension("docx"); 
docx.setStoreProperties(DocumentFamily.TEXT, 
         Collections.singletonMap("FilterName", 
               "MS Word 2007 XML")); 

converter.convert(new File("C:\\localFiles\\abc.doc"), 
        new File("C:\\localFiles\\abc_new.docx")); 

officeManager.stop(); 

をしかし、私は上記のコードは完全に正常に動作してPDFにdocxファイルからの私の予想のファイルの拡張子を変更した場合。

+0

@Brutal_JLはあなたには、いくつかの入力を提供することができますか? –

答えて

0

明らかにWindows上にあるように、より安定したソリューションがあります。このソリューションは、より正確な変換結果も提供します。

任意のバージョンのOffice(2007以降)をインストールするか、Microsoftから互換機能パックをダウンロードしてインストールする必要があります(まだ実行していない場合)。 <入力ファイル>と<出力ファイル>は、完全修飾パス名である必要はあり

"C:\Program Files\Microsoft Office\Office12\wordconv.exe" -oice -nme <input file> <output file> 

:その後、次のコマンドを使用して簡単に.docxする.DOCから変換することができます。

コマンドが簡単にforを使用して複数の文書に適用することができます。

for %F in (*.doc) do "C:\Program Files\Microsoft Office\Office12\wordconv.exe" -oice -nme "%F" "%Fx" 

それとも、Javaからコマンドを呼び出すことができます。

Process p = Runtime.getRuntime().exec(
    new String[] { 
     "C:\Program Files\Microsoft Office\Office12\wordconv.exe", 
     "-oice", 
     "-nme", 
     "C:\\localFiles\\abc.doc", 
     "C:\\localFiles\\abc_new.docx" 
    }); 
int exitVal = p.waitFor(); 
+0

Javaコードでdocxをdocxに変換する必要があります。後で結果のdocxをXWPFDocumentドキュメントに変換してカスタムプロパティを注入する必要があります。これらのコマンド(あなたが提供したコマンド)をコードから実行できるかどうかはわかりません。 –

+0

PS:WindowsマシンにOfficeをインストールしました。 –

関連する問題