Convierta Word doc a HTML programáticamente en Java
ms-word (10)
Es más fácil hacer esto en la nueva MS word docx ya que el formato está en XML. Puede usar un XSL para transformar el documento de Word en formato XML a un formato HTML.
Sin embargo, si su documento de Word está en una versión anterior, puede usar la biblioteca de puntos de interés http://poi.apache.org/ y luego acceder a eso y generar un objeto de Java y a partir de ese punto puede convertirlo fácilmente a un formato HTML usando una biblioteca HTML java
http://www.dom4j.org/dom4j-1.4/apidocs/org/dom4j/io/HTMLWriter.html
Necesito convertir un documento de Word en archivo (s) HTML en Java. La función tomará un documento de entrada y el resultado será un archivo html basado en el número de páginas que tiene la palabra documento, es decir, si la palabra documento tiene 3 páginas, habrá 3 archivos html generados con el salto de página requerido.
Busqué API de código abierto / no comercial que pueden convertir doc a html pero sin ningún resultado. Cualquiera que haya hecho este tipo de trabajo antes, por favor ayuda.
Gracias
Intenté de esta manera y su trabajo conmigo desde este sitio http://code.google.com/p/xdocreport/wiki/XWPFConverterXHTML
Esto solo funciona con docx para convertirlo en imágenes incluidas html dentro de ese documento de 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);
Espero que esto resuelva tu problema
Recomiendo el JODConverter , aprovecha OpenOffice.org, que proporciona posiblemente los mejores filtros de importación / exportación para los formatos de OpenDocument y Microsoft Office disponibles en la actualidad.
JODConverter tiene una gran cantidad de documentos, scripts y tutoriales para ayudarte.
Si es un docx, puede usar docx4j (ASL v2). Esto usa XSLT para crear el HTML.
Sin embargo, le dará un único HTML para todo el documento.
Si quería un HTML por página, podría hacer algo con la última etiqueta RenderedPageBreak que Word coloca en el docx (suponiendo que utilizó Word para crearla).
Tendría que encontrar la especificación MS Word doc (ya que es básicamente un volcado binario de lo que sea que esté en la palabra en ese momento), y pasar lentamente por su elemento por elemento convirtiendo ms palabra "objects / states" en el html equiv. es posible que pueda encontrar un script para hacerlo, ya que este no es un trabajo realmente divertido y le aconsejaría que no lo haga (la conversión de formatos de archivo o incluso la lectura de archivos comerciales por su cuenta siempre es difícil ya menudo incompleta). PD: solo google doc2html
Usamos tm-extractores ( http://mvnrepository.com/artifact/org.textmining/tm-extractors ) y recurrimos al comercial Aspose ( http://www.aspose.com/ ). Ambos tienen API nativas de Java.
Utilicé el siguiente enfoque con éxito en sistemas de producción donde el nuevo formato XML de MS Word no está disponible:
Genera un proceso que hace algo similar a:
http://www.oooninja.com/2008/02/batch-command-line-file-conversion-with.html
Es probable que desee iniciar Office una vez al inicio de su programa, y llame al script de Python tantas veces durante el programa que lo necesite (con algún tipo de comprobación para asegurarse de que el proceso de Office siempre esté allí).
La otra opción es generar el siguiente tipo de comando cada vez que necesite hacer la conversión:
ooffice -headless "macro: // <ruta de acceso a la macro de ooffice vb para convertir, con el parámetro apuntando al archivo>"
He utilizado el enfoque macro varias veces y funciona bien (lo siento, no tengo el código de macro disponible).
Si bien existen mecanismos para hacerlo a través de MS Word, no son fáciles de Java, y requieren otros programas de soporte para conducir MS Word a través de OLE.
También he usado abiword antes, que funciona bien para muchos documentos, pero se confunde con documentos más complejos (ooffice parece manejar todo lo que le he echado). Abiword tiene una interfaz de línea de comandos ligeramente más fácil para la conversión que ooffice.
Veo que este hilo aparece en enlaces externos y tiene publicaciones ocasionales, así que pensé en publicar una actualización (espero que a nadie le importe). OpenOffice continúa evolucionando y la versión 3.2 mejora nuevamente la palabra importación y exportación de filtros. OpenOffice y Java pueden ejecutarse en muchas plataformas, por lo que los sistemas Java pueden usar la API de OpenOffice UNO directamente para importar / manipular / exportar documentos en muchos formatos (incluyendo Word y PDF) o usar una biblioteca como JODReports o Docmosis para facilitar. Ambos tienen opciones libres / abiertas.
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");
Todas las conversiones posibles:
doc -> pdf, html, txt, rtf
xls -> pdf, html, csv
ppt -> pdf, swf
html -> pdf