将.docx转换为html,我得到了不可读的文本

时间:2012-10-28 16:23:41

标签: java

  

可能重复:
  Convert Word doc to HTML programmatically in Java

我有一个程序正在获取.docx文件并打开为.html文件但是当转换为html时,我得到的是不可读的字符串。我需要这个文件的html,因为我需要稍后解析它。当我使用下面的方法打开文件时,我得到了不可读的文本,例如:úL] iN?#tBd!?^??e“0©??? ??AäúsIp?¸ü?D?ÂÓâ€?D?½? ?Eâcr&Æl\Fâÿ2qJ?U ??IúK&þIb

    FileInputStream fileInput = null;
    BufferedInputStream myBuffer = null;
    DataInputStream dataInput = null;
    fileInput = new FileInputStream(selectedFile);
    myBuffer = new BufferedInputStream(fileInput);
    dataInput = new DataInputStream(myBuffer);
    StringBuilder nHtmlText = new StringBuilder();
    while (dataInput.available() != 0) {
        System.out.println(dataInput.readLine());
        nHtmlText.append(dataInput.readLine());
    }
    htmlText = nHtmlText.toString();

有没有办法获得一个干净的可读html文件来解析和保存?

3 个答案:

答案 0 :(得分:1)

没有。

你正在阅读docx文件的原始内容,这不是html而是压缩xml - 请参阅here,你需要一些东西将docx翻译成html。两者截然不同。

答案 1 :(得分:1)

Docx4j是一个java库,允许您打开,读取和操作docx文件。我过去成功地使用过它。

它还能够将文件的内容导出为HTML。您可以在此处阅读更多内容:http://www.docx4java.org/svn/docx4j/trunk/docx4j/docs/Docx4j_GettingStarted.html(第docx to (X)HTML部分大约是页面的一半)

答案 2 :(得分:0)

如果要将.docx文件转换为.html,则无法直接读取该文件,因为它是二进制文件。您可以使用JODConverter。我个人没有使用过这个问题,但这个问题几乎与this question重复。