Конвертировать.docx в HTML с помощью JAVA

Я попытался преобразовать .doc в HTML с помощью WordToHtmlConverter и это сработало отлично.

но когда я попытался преобразовать .docx в HTML, я застрял с ним.

что я пробовал:

я использовал приведенный ниже код для преобразования .docx в HTML:

код, который я пробовал:как использовать класс XWPFWordExtractorDecorator от Tika?

        InputStream input = TikaInputStream.get(new File("C:UsersDownloadsfilename.docx"));


        Parser parser = new AutoDetectParser();


        StringWriter sw = new StringWriter();
        SAXTransformerFactory factory = (SAXTransformerFactory)
                 SAXTransformerFactory.newInstance();
        TransformerHandler handler = factory.newTransformerHandler();
        handler.getTransformer().setOutputProperty(OutputKeys.METHOD, "html");
        handler.getTransformer().setOutputProperty(OutputKeys.INDENT, "yes");
        handler.setResult(new StreamResult(sw));


        try {
            Metadata metadata = new Metadata();
            parser.parse(input, handler, metadata, new ParseContext());
            String xml = sw.toString();
            System.out.print("tika : "+xml); 
        } finally {
            input.close();
        }

вывод, что я получил,

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title/>
</head>
<body/>
</html>
  • Пожалуйста, объясните, где я пошло не так?
  • есть ли лучший способ преобразования .docx в html строку

ценю вашу помощь, Спасибо

1 ответов


этот код работал для меня, чтобы преобразовать .docx в html:

вы также можете посмотреть по ссылке : ссылка на код

       //convert .docx to HTML string
        InputStream in= new FileInputStream(new File(path));
        XWPFDocument document = new XWPFDocument(in);


        XHTMLOptions options = XHTMLOptions.create().URIResolver(new FileURIResolver(new File("word/media")));

        OutputStream out = new ByteArrayOutputStream();


        XHTMLConverter.getInstance().convert(document, out, options);
        String html=out.toString();
        System.out.println(html);