How to use Tika's XWPFWordExtractorDecorator c

2020-07-29 00:20发布

问题:

Someone told me that Tika's XWPFWordExtractorDecorator class is used to convert docx into html. But I am not sure how to use this class to get the HTML from docx. Any other library for doing the same job is also appreciated/

回答1:

You shouldn't use it directly

Instead, call Tika in the usual way, and it'll call the appropriate code for you

If you want XHTML from parsing a file, the code looks something like

    // Either of these will work, the latter is recommended
    //InputStream input = new FileInputStream("test.docx");
    InputStream input = TikaInputStream.get(new File("test.docx"));

    // AutoDetect is normally best, unless you know the best parser for the type
    Parser parser = new AutoDetectParser();

    // Handler for indented XHTML
    StringWriter sw = new StringWriter();
    SAXTransformerFactory factory = (SAXTransformerFactory)
             SAXTransformerFactory.newInstance();
    TransformerHandler handler = factory.newTransformerHandler();
    handler.getTransformer().setOutputProperty(OutputKeys.METHOD, "xml");
    handler.getTransformer().setOutputProperty(OutputKeys.INDENT, "yes");
    handler.setResult(new StreamResult(sw));

    // Call the Tika Parser
    try {
        Metadata metadata = new Metadata();
        parser.parse(input, handler, metadata, new ParseContext());
        String xml = sw.toString();
    } finally {
        input.close();
    }