4

いくつかの画像を含む DOC ファイルがあります。画像付きのHTMLに変換する方法は?

この例を使用しようとしました: Convert Word doc to HTML programmatically in Java

public class Converter {
    ...

    private File docFile, htmlFile;

    try {
        FileInputStream fos = new FileInputStream(docFile.getAbsolutePath()); 
        HWPFDocument doc = new HWPFDocument(fos);       
        Document newDoc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();

        WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(newDoc) ;
        wordToHtmlConverter.processDocument(doc);

        StringWriter stringWriter = new StringWriter();

        Transformer transformer = TransformerFactory.newInstance().newTransformer();        
        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
        transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
        transformer.setOutputProperty(OutputKeys.METHOD, "html");
        transformer.transform(
                    new DOMSource(wordToHtmlConverter.getDocument()),
                    new StreamResult(stringWriter)
        );

        String html = stringWriter.toString();

        try {
            BufferedWriter out = new BufferedWriter(
                new OutputStreamWriter(new FileOutputStream(htmlFile), "UTF-8")
            );     
            out.write(html);
            out.close();
       } catch (IOException e) {
           e.printStackTrace();
       }

       JEditorPane jEditorPane = new JEditorPane();
       jEditorPane.setContentType("text/html");
       jEditorPane.setEditable(false);
       jEditorPane.setPage(htmlFile.toURI().toURL());

       JScrollPane jScrollPane = new JScrollPane(jEditorPane);

       JFrame jFrame = new JFrame("display html file");
       jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       jFrame.getContentPane().add(jScrollPane);
       jFrame.setSize(512, 342);
       jFrame.setVisible(true);

    } catch(Exception e) {
        e.printStackTrace();
    }
    ...
}

しかし、イメージは失われます。

クラスのドキュメントWordToHtmlConverterは、次のように記載されています。

...この実装では、画像やそれらへのリンクは作成されません。これはメソッドをオーバーライドすることで変更できます AbstractWordConverter.processImage(Element, boolean, Picture)

DOC を画像付きの HTML に変換するには?

4

2 に答える 2

2

この場合の最善の策は、Apache Tikaを使用して、Apache POI をラップすることです。Apache Tika はドキュメントの HTML を生成します (またはプレーン テキストですが、場合によっては HTML が必要です)。それに加えて、埋め込みリソースのプレースホルダー、埋め込み画像の img タグを配置し、埋め込みリソースと画像のコンテンツを取得する方法を提供します。

Alfresco、 HTMLRenderingEngineに含まれているこれを行う非常に良い例があります。そこでコードを確認してから、非常に似たようなことを行う独自のコードを作成することをお勧めします。そこのコードには、img タグを編集して src 属性を書き直すことができるカスタム ContentHandler が含まれています。

于 2012-12-11T08:28:57.487 に答える