使用Apache POI将.docx转换为html并且不获取任何文本

时间:2012-10-27 19:25:29

标签: java ms-word apache-poi

我目前有一些将.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,但它是空的,没有文本。

2 个答案:

答案 0 :(得分:5)

Mark,您使用的是仅支持.doc格式的 HWPF软件包,请参阅this description。该文档还提到了通过 XWPF包.docx文件提供界面的尝试。但是,他们似乎缺乏人力资源,鼓励用户提交扩展。但是应该提供有限的功能,提取文本必须是其中之一。

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

答案 1 :(得分:0)

此时我也受到了打击 现在我知道有一个第三方API将docx转换为html
工作正常 https://code.google.com/p/xdocreport/wiki/XWPFConverterXHTML