2011-10-23 14 views
9

Vedo che c'è un convertitore chiamato WordToHtmlConverter ma il metodo di processo non è esposto. Come devo passare un file doc e ottenere il file HTML (o OutputStream)?Converti Word in HTML con Apache POI

+0

è questo che stai chiedendo? http://stackoverflow.com/questions/227236/convert-word-doc-to-html-programmatically-in-java – enrique2334

+0

Non è ... In POI Apache hanno una nuova classe nel pacchetto org.apache.poi .hwpf.converter per gestirlo ... ma non è stato possibile trovare alcun tutorial su come usarli. – Ron

risposta

18

Questo codice ora funziona per me!

HWPFDocumentCore wordDocument = WordToHtmlUtils.loadDoc(new FileInputStream("D:\\temp\\seo\\1.doc")); 

    WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(
      DocumentBuilderFactory.newInstance().newDocumentBuilder() 
        .newDocument()); 
    wordToHtmlConverter.processDocument(wordDocument); 
    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()); 
    System.out.println(result); 
+0

Posso ottenere tutto il codice per questo ...? –

+0

Grazie Ron. Il tuo suggerimento mi ha salvato. Ho provato il campione fornito ma salta immagini, tabelle e contenuti all'interno di diagrammi (come la scatola). C'è un modo per estrarre anche quello. Ho visto alcuni esempi per estrarre le immagini separatamente. C'è un modo per stare tutti insieme. Altrimenti possiamo mettere quelle immagini, tabelle come esattamente nella posizione del file originale. Mezzi per soddisfare il requisito "rendering di file doc come contenuto HTML" (non saltare immagini, tabelle, diagrammi ecc.) –