2011-10-23 28 views
9

WordToHtmlConverterというコンバーターがありますが、プロセスメソッドが公開されていません。 docファイルを渡してHTMLファイル(またはOutputStream)を取得するにはどうすればよいですか?Apache POIでWordをHTMLに変換する

+0

これはあなたのご質問ですか? http://stackoverflow.com/questions/227236/convert-word-doc-to-html-programmatically-in-java – enrique2334

+0

Apache POIには、org.apache.poiパッケージの新しいクラスがあります.hwpf.converterはそれを処理する...しかし、それらを使用する方法に関するチュートリアルを見つけることができませんでした。 – Ron

答えて

18

このコードは現在機能しています。

HWPFDocumentCore wordDocument = WordToHtmlUtils.loadDoc(new FileInputStream("D:\\temp\\seo\\1.doc")); 

    WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(
      DocumentBuilderFactory.newInstance().newDocumentBuilder() 
        .newDocument()); 
    wordToHtmlConverter.processDocument(wordDocument); 
    Document htmlDocument = wordToHtmlConverter.getDocument(); 
    ByteArrayOutputStream out = new ByteArrayOutputStream(); 
    DOMSource domSource = new DOMSource(htmlDocument); 
    StreamResult streamResult = new StreamResult(out); 

    TransformerFactory tf = TransformerFactory.newInstance(); 
    Transformer serializer = tf.newTransformer(); 
    serializer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); 
    serializer.setOutputProperty(OutputKeys.INDENT, "yes"); 
    serializer.setOutputProperty(OutputKeys.METHOD, "html"); 
    serializer.transform(domSource, streamResult); 
    out.close(); 

    String result = new String(out.toByteArray()); 
    System.out.println(result); 
+0

私はそれのための完全なコードを得ることができます..? –

+0

ありがとうございました。あなたの提案は私を助けました。私は提供されたサンプルを試しましたが、図の中の画像、表、内容をスキップします(ボックスのように)。あまりにもそれを抽出する方法はありますか?別々に画像を抽出する例はほとんどありませんでした。すべてを一緒にする方法はありますか?それ以外の場合は、元のファイルの位置に正確にそれらのイメージ、テーブルを置くことができます。 "ドキュメントファイルをHTMLコンテンツとしてレンダリング"(画像、表、図などをスキップしない)という要件を満たす手段 –

関連する問題