Convertir Word doc en HTML par programmation en Java

je dois convertir un document Word en fichier(s) HTML en Java. La fonction prendra l'entrée d'un document word et la sortie sera le dossier html basé sur le nombre de pages que le document word a c.-à-d. si le document word a 3 pages alors il y aura 3 dossiers html produits ayant la rupture de page requise.

j'ai cherché des API open source/non-commercial qui peuvent convertir doc en html mais sans résultat. Quiconque a déjà fait ce genre de travail s'il vous plaît aider.

Merci

20
demandé sur kaychaks 2008-10-22 23:36:27

10 réponses

nous utilisons des extracteurs tm ( ) http://mvnrepository.com/artifact/org.textmining/tm-extractors ), et retomber à L'Aspose commerciale ( ) http://www.aspose.com / ). Les deux ont des API Java natives.

2
répondu Chase Seibert 2008-10-22 20:43:19

je recommande le JODConverter , Il tire OpenOffice.org, qui fournit sans doute les meilleurs filtres d'import / export pour les formats OpenDocument et Microsoft Office disponibles aujourd'hui.

JODConverter a beaucoup de documents, scripts et tutoriels pour vous aider.

5
répondu Fisher 2011-06-23 09:21:16

j'ai utilisé avec succès l'approche suivante dans les systèmes de production où le nouveau format MS Word XML n'est pas disponible:

Frayer un processus qui fait quelque chose de similaire à:

http://www.oooninja.com/2008/02/batch-command-line-file-conversion-with.html

vous voudriez probablement lancer openoffice une fois au démarrage de votre programme, et appeler le script python autant de fois pendant votre programme dont vous avez besoin (avec une sorte de vérification pour s'assurer que le processus de bureau est toujours là).

l'autre option est de lancer le type de commande suivant chaque fois que vous avez besoin de faire la conversion:

ooffice -headless "macro://"

j'ai utilisé l'approche macro plusieurs fois et cela fonctionne bien (désolé, je n'ai pas le code macro disponible).

bien qu'il existe des mécanismes pour le faire via MS Word, ils ne sont pas faciles depuis Java, et nécessitent d'autres programmes de soutien pour conduire MS Word via OLE.

j'ai utilisé abiword avant aussi, ce qui fonctionne bien pour de nombreux documents, mais ne se confond avec des documents plus complexes (ooffice semble gérer tout ce que j'ai jeté à elle). Abiword a une interface de ligne de commande légèrement plus facile pour la conversion que ooffice.

4
répondu Jamie Love 2008-10-22 20:31:17

il est plus facile de le faire dans le nouveau MS word docx car le format est en XML. Vous pouvez utiliser un XSL pour transformer le Word doc en format XML en format HTML.

si toutefois votre mot doc est dans une ancienne version, vous pouvez utiliser la bibliothèque POI http://poi.apache.org/ et ensuite accéder à cela et générer un objet Java et à partir de ce point vous pouvez facilement le convertir en format HTML en utilisant une bibliothèque java HTML

http://www.dom4j.org/dom4j-1.4/apidocs/org/dom4j/io/HTMLWriter.html

2
répondu 2009-04-10 21:02:04

si c'est un docx, vous pouvez utiliser docx4j (ASL v2). Cela utilise XSLT pour créer le HTML.

cependant, il vous donnera un HTML unique pour l'ensemble du document.

si vous voulez un HTML par page, vous pouvez faire quelque chose avec la balise lastRenderedPageBreak que Word met dans le docx (en supposant que vous avez utilisé Word pour le créer).

1
répondu JasonPlutext 2009-03-27 01:56:04

je vois ce fil apparaît dans les liens externes et a le post occasionnel alors j'ai pensé que je voudrais poster une mise à jour (espérons que personne ne s'en soucie). OpenOffice continue d'évoluer et la version 3.2 améliore à nouveau les filtres d'exportation de word import. OpenOffice et Java peuvent fonctionner sur de nombreuses plateformes de sorte que les systèmes Java peuvent utiliser L'API OpenOffice UNO directement pour importer/manipuler/exporter des documents dans de nombreux formats (y compris word et pdf) ou utiliser une bibliothèque comme JODReports ou Docmosis pour faciliter. Les deux ont des options libres/ouvertes.

1
répondu Paul Jowett 2010-06-11 14:09:25

j'ai essayé cette façon et son travail avec moi à partir de ce site http://code.google.com/p/xdocreport/wiki/XWPFConverterXHTML

cela fonctionne uniquement avec docx pour le convertir en images html incluses à l'intérieur de ce document word.

    // 1) Load DOCX into XWPFDocument
    InputStream doc = new FileInputStream(new File("c:/document.docx"));
    XWPFDocument document = new XWPFDocument(doc);

   // 2) Prepare XHTML options (here we set the IURIResolver to load images from a "word/media" folder)
            XHTMLOptions options = XHTMLOptions.create(); //.URIResolver(new FileURIResolver(new File("word/media")));;

            // 3) Extract image
            String root = "target";
            File imageFolder = new File( root + "/images/" + doc );
            options.setExtractor( new FileImageExtractor( imageFolder ) );
            // 4) URI resolver
            options.URIResolver( new FileURIResolver( imageFolder ) );


            OutputStream out = new FileOutputStream(new File("c:/document.html"));
            XHTMLConverter.getInstance().convert(document, out, options);

j'espère que ce résoudre votre problème

1
répondu Yusuf D.Kutni Z Felemban 2015-06-15 08:06:54

vous devez trouver la spécification MS word doc ( puisqu'il s'agit essentiellement d'un dump binaire de ce qui est dans word à ce moment-là ), et passer lentement élément par élément en convertissant ms word" objets/États " en équivalent html. vous pourriez être en mesure de trouver un script pour le faire pour u car ce n'est vraiment pas un travail amusant et je conseillerais contre ( conversion de formats de fichiers ou même la lecture de fichiers commerciaux sur votre propre est toujours difficile et souvent incomplet ). PS: juste google doc2html

0
répondu DavidG 2008-10-22 19:48:46

si vous ciblez les fichiers word 2007 en utilisant le format ooxml, alors cet" article pourrait vous aider. Et il y a le projet Ooxml4j qui implémente ooxml pour la bibliothèque Java.

Si vous ciblez les fichiers binaires...c'est un autre problème.

0
répondu Vincent Ramdhanie 2008-10-22 20:20:18
import officetools.OfficeFile; // package available at www.dancrintea.ro/doc-to-pdf/
...
FileInputStream fis = new FileInputStream(new File("test.doc"));
FileOutputStream fos = new FileOutputStream(new File("test.html"));
OfficeFile f = new OfficeFile(fis,"localhost","8100", true);
f.convert(fos,"html");

toutes les conversions possibles:

doc -- > pdf, html, txt ,rtf

xls --> pdf, html, csv

ppt -- > pdf, swf

html -- > pdf

0
répondu Pavlonator 2011-07-21 21:36:40