2010-06-11 56 views
35

Cómo convertir doc a pdf usando java api. donde el documento contiene varios formatos, como tablas en ms word. al convertir a pdf usando iText. donde el documento real se ve diferente al pdf convertido. por favor proporcione cualquier API, no un exe instalado para la conversión. debe ser una fuente abiertaCómo convertir MS doc a pdf

Respuesta

38

Ésta es una tarea bastante difícil, cada vez más difícil si desea resultados perfectos (imposible sin usar Word), por lo tanto, el número de API que lo hace todo por usted en Java puro y el código abierto es cero, creo (Actualización: me equivoco, consulte a continuación).

Las opciones básicas son las siguientes:

  1. utiliza JNI/un servicio web C#/etc secuencia de comandos de MS Office (única opción para el 100% de resultados perfectos)
  2. Utilizando el API de escritura de Open Office disponible (90 +% perfecto)
  3. Utilice Apache POI & iText (trabajo muy grande, nunca será perfecto).

Actualización - 11/02/2016 Aquí es una copia reducida de mi blog sobre este tema que se esbozan los productos existentes que apoyan la Palabra a PDF en Java.

Converting Microsoft Office (Word, Excel) documents to PDFs in Java

tres productos, que yo sepa puede representar documentos de oficina:

yeokm1/docs-to-pdf-converter irregular mantienen, Pure Java, Open Source une una serie de bibliotecas para realizar la conversión.

xdocreport activamente desarrollado, Pure Java, Open Source Se API Java para fusionar documento XML creado con MS Office (docx) o OpenOffice (ODT), LibreOffice (ODT) con un modelo de Java para generar el informe y convertir si necesita otro formato (PDF, XHTML ...).

Snowbound Imaging SDK Cerrado Fuente, Java puro sitiado parece ser una solución de Java 100% y los costos de más de $ 2,500. Contiene ejemplos que describen cómo convertir documentos en la descarga de la evaluación.

OpenOffice API de código abierto, no es puro Java - Requiere Open Office instalado OpenOffice es una suite de oficina nativa que soporta una API de Java. Esto permite leer documentos de Office y escribir documentos PDF. El SDK contiene un ejemplo en la conversión de documentos (examples/java/DocumentHandling/DocumentConverter.java). Para escribir archivos PDF necesita pasar el escritor "writer_pdf_Export" en lugar del "MS Word 97". O puede usar la API contenedora JODConverter.

JDocToPdf-Muerto como de 11/02/2016 Usos Apache POI para leer el documento de Word y iText para escribir el archivo PDF. Completamente gratis, 100% Java pero tiene algunos limitations.

+0

mlk, ¿hay alguna posibilidad de que pueda dar más detalles sobre la opción n. ° 1? Preferiría llamar a las API creadas por MS para mi situación, incluso si implica el uso de JNI, con el fin de obtener la mejor representación de PDF posible. – kwikness

+1

He investigado esto un poco (http://www.suodenjoki.dk/us/productions/articles/word2pdf.htm). NO lo recomiendo, Microsoft también está de acuerdo con esto.Word no está diseñado para la automatización. –

+1

http://support.microsoft.com/kb/257757/en-us Si tuviera que hacer esto, utilizaría Open Office. –

0

No he intentado usarlo para MS Word, pero he tenido buen éxito la lectura de documentos de MS Excel utilizando Apache POI - http://poi.apache.org/

0

Busque en scripting OpenOffice.org para hacer el trabajo por usted.

0

Estoy de acuerdo con los carteles que enumeran OpenOffice como una instalación de importación/exportación de alta fidelidad de documentos word/pdf con una API Java y también funciona en todas las plataformas. Los filtros de importación/exportación de OpenOffice son bastante potentes y conservan la mayoría del formato durante la conversión a varios formatos, incluido el PDF. Docmosis y JODReports valor agregado para hacer la vida más fácil que aprender la API de OpenOffice directamente, lo que puede ser un desafío debido al estilo de la API de UNO y los errores relacionados con fallas.

7

Puede usar JODConverter para este fin. Se puede usar para convertir documentos entre diferentes formatos de oficina. tales como:

  1. Microsoft Office para OpenDocument, y viceversa
  2. cualquier formato a PDF
  3. y es compatible con muchos más conversión, así
  4. También puede convertir MS Office 2007 documentos a PDF, así como con casi todos los formatos

Más detalles sobre ella se pueden encontrar aquí: http://www.artofsolving.com/opensource/jodconverter

0

unoconv, es una herramienta de python que funciona en UNIX. Mientras uso Java para invocar el shell en UNIX, funciona perfecto para mí. Mi código fuente: UnoconvTool.java. Se dice que JODConverter y unoconv usan open office/libre office.

docx4j/docxreport, POI, PDFBox son buenos pero faltan algunos formatos en la conversión.

3

Salida docs-to-pdf-converter on github. Es una solución liviana diseñada específicamente para convertir documentos a pdf.

¿Por qué?

Quería un programa simple que puede convertir documentos de Microsoft Office a PDF pero sin dependencias como LibreOffice o soluciones propietarias . Viendo cómo el código y las bibliotecas para convertir cada formato individual está disperso por la web, decidí combinar todas esas soluciones en un solo programa. En el camino, I decidí agregar soporte ODT también ya que encontré el código también.