Apache POI Word清除Html没有样式或不必要的标签

时间:2017-07-27 06:08:39

标签: java html css ms-word apache-poi

我正在尝试将Word文档转换为清理html。我正在使用Apache POI,但它创建了一个混乱,就像MS Word自己的HTML保存方法。我想要的是https://html-cleaner.com/之类的东西 例如,当我尝试转换表时,我不想要任何宽度属性或其他东西。只有一些不错的<td><tr>代码可能包含一些<b>

任何人都知道如何实现这一目标?顺便说一下,我没有被迫使用Apache POI,如果您知道任何其他用于实现Word以清除html转换的Java API,我愿意接受您的建议。

1 个答案:

答案 0 :(得分:0)

对答案进行评论....你应该看一下Apache Tika。 Apache Tika由Apache POI提供支持,旨在提供干净,语义上有意义的HTML,我认为这是你之后的

如果您按照Apache Tika example for parsing to XHTML进行操作,则执行以下操作:

public String parseToHTML() throws IOException, SAXException, TikaException {
  ContentHandler handler = new ToXMLContentHandler();

  AutoDetectParser parser = new AutoDetectParser();
  Metadata metadata = new Metadata();
  try (InputStream stream = ContentHandlerExample.class.getResourceAsStream("test.doc")) {
    parser.parse(stream, handler, metadata);
    return handler.toString();
  }
}

此外,为了进行测试,您可以使用runnable single-jar Tika App cli tool,将--xhtml选项与您的文件一起传递,然后它会在命令行上返回简单的干净XHTML