2012-02-01 55 views
3

私はdocxをjavaを使用してpdfに変換できる必要があります。私はdocx4jを使ってみましたが、かなり良いですが、私が持っているdocxは扱えるものよりもはるかに複雑です。私はPDFプリンタがそれらを扱うことができるかどうかを見てみることにしました。今、私はJAVAから自動化する方法の問題に直面しています。私が見つけた唯一の解決策は、MS Word(Open Office APIを使ってみましたが、docxの書式設定も処理できませんでした)です。DocxからJavaへのPDF変換

jacobのようなJava用の複数のCOMマッピングが見つかりましたが、それらを試しましたが、Wordの印刷に適切なCOMコマンドが見つからないようです。私は(私は一緒にウェブ上で見つかったいくつかの作品をスタック)されて使用していますコード:

 String sInputDoc = "fi.docx"; 
     boolean tVisible = false; 
     ActiveXComponent oWord = new ActiveXComponent("Word.Application"); 
     oWord.setProperty("Visible", new Variant(tVisible)); 
     Object oDocuments = oWord.getProperty("Documents").toDispatch(); 
     Object oDocument = Dispatch.call((Dispatch)oDocuments, "Open", sInputDoc).toDispatch(); 

     Dispatch oSelection = oWord.getProperty("Selection").toDispatch(); 
     Dispatch oFind = oWord.call(oSelection, "Find").toDispatch(); 
     Dispatch oWordBasic = (Dispatch) Dispatch.call(oWord, "WordBasic").getDispatch(); 
     Dispatch.call(oWordBasic, "FilePrint"); 

このコードは、しかしのみ(理由はわからない)を印刷しようとすると、保存したファイルをしていないプログラムが発生します。

今質問があります:印刷の操作をWordに送信するにはどうすればよいですか? (私は研究をしましたが、コメントは基本的に開かれた言葉で、pdfに印刷しますが、実際に印刷する方法は決してありません)もっと良いオプションがあれば、それは何ですか?私は無料のライセンスを持っているものと一緒に働くことができてうれしいです。

ありがとうございます。

+0

docx4jに関するアップデート:最近では、オープンソースのXSL FOベースの変換に加えて、FO以外の商業的な代替手段もあります。詳細はhttp://www.docx4java.org/forums/pdf-output-f27/higher-fidelity-pdf-output-now-available-t2117.html – JasonPlutext

答えて

0

ODFコンバータとJODコンバータを組み合わせて試すことができます。 ODFコンバータはODT変換に合理的なDOCXを提供し、JOD変換器はPDF出力に合理的なODTを提供することができます。印刷は何か他のものですが、あなたが試みた特定のソリューションのために印刷する必要があるだけです。

+0

を参照してください。ODF Converterのピースが必要なのは間違いです。最近のOOはdocxをうれしく十分に開くことができます。 JOD Converterを使用してください。 – JasonPlutext

+0

組み込みのDocX変換はこれまでのところかなり貧弱です。 ODFConverterは数ヶ月先の長い道のりで優れていました。私は最新バージョンを評価していません。 –