2

我目前有一些将 .doc 文档转换为 html 的代码,但不幸的是,我用于将 .docx 转换为文本的代码没有获取文本并将其转换。下面是我的代码。

private void convertWordDocXtoHTML(File file) throws ParserConfigurationException, TransformerConfigurationException, TransformerException, IOException {
    XWPFDocument wordDocument = null;
    try {
        wordDocument = new XWPFDocument(new FileInputStream(file));
    } catch (IOException ex) {
        Exceptions.printStackTrace(ex);
    }

    WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());
    org.w3c.dom.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());
    acDocTextArea.setText(newDocText);
    String htmlText = result;

}

任何关于为什么这不起作用的想法将不胜感激。ByteArrayOutput 应该返回整个 html,但它是空的并且没有文本。

4

2 回答 2

5

马克,您正在使用仅支持.doc格式的 HWPF 包,请参阅此说明.docx该文档还提到了通过XWPF 包为文件提供接口的尝试。然而,他们似乎缺乏人力资源,鼓励用户提交扩展。但是应该提供有限的功能,提取文本必须是其中之一。

您还应该看到这个问题:How to Extract docx (word 2007 above) using apache POI

于 2012-10-28T13:56:28.380 回答
0

在这一点上我也很震惊。
现在我知道有一个 3rd 方 API 可以将 docx 转换为 html
工作正常
https://code.google.com/p/xdocreport/wiki/XWPFConverterXHTML

于 2013-12-16T01:46:00.963 回答