Cómo convertir MS doc a pdf

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 abierta

Esta es una tarea bastante difícil, cada vez más difícil si quieres resultados perfectos (imposible sin usar Word), por lo que la cantidad de API que lo hacen todo por ti en Java puro y son de código abierto es cero, creo ( Actualización: estoy equivocado , ver más abajo ).

Tus opciones básicas son las siguientes:

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

Actualización – 2016-02-11 Aquí hay una copia reducida de la publicación de mi blog sobre este tema que resume los productos existentes que admiten Word-to-PDF en Java.

Conversión de documentos de Microsoft Office (Word, Excel) a archivos PDF en Java

Tres productos que conozco pueden representar documentos de Office:

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

xdocreport Desarrollado activamente, Pure Java, Open Source Es la API de Java para combinar documentos XML creados con MS Office (docx) u OpenOffice (odt), LibreOffice (odt) con un modelo Java para generar informes y convertirlos si necesita otro formato ( PDF, XHTML …).

Snowbound Imaging SDK Closed Source, Pure Java Snowbound parece ser una solución 100% Java y cuesta más de $ 2,500. Contiene ejemplos que describen cómo convertir documentos en la descarga de la evaluación.

OpenOffice API Código abierto, no puro Java: requiere Open Office instalado OpenOffice es un paquete nativo de Office que admite una API 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 el envoltorio API JODConverter .

JDocToPdf – Muerto a partir del 2016-02-11 Utiliza Apache POI para leer el documento de Word e iText para escribir el PDF. Completamente gratis, 100% Java pero tiene algunas limitaciones .

Puede usar JODConverter para este propósito. Se puede usar para convertir documentos entre diferentes formatos de oficina. como:

  1. Microsoft Office para OpenDocument, y viceversa
  2. Cualquier formato a PDF
  3. Y admite muchas más conversiones también
  4. También puede convertir documentos de MS Office 2007 a PDF, así como en casi todos los formatos

Puede encontrar más detalles al respecto aquí: http://www.artofsolving.com/opensource/jodconverter

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

¿Por qué?

Quería un progtwig simple que pudiera convertir documentos de Microsoft Office a PDF pero sin dependencias como LibreOffice o soluciones propietarias costosas. 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 progtwig. En el camino, decidí agregar soporte ODT también desde que encontré el código también.

Puede usar la biblioteca Java nativa de Cloudmersive. Es gratis por hasta 50,000 conversiones / mes y es mucho más confiable en mi experiencia que otras cosas como iText o métodos basados ​​en POI de Apache. Los documentos en realidad se ven iguales que en Microsoft Word, que para mí es la clave. Por cierto, también puede hacer XLSX, PPTX y la antigua conversión de DOC, XLS y PPT a PDF.

Así es como se ve el código, primero añada sus importaciones:

import com.cloudmersive.client.invoker.ApiClient; import com.cloudmersive.client.invoker.ApiException; import com.cloudmersive.client.invoker.Configuration; import com.cloudmersive.client.invoker.auth.*; import com.cloudmersive.client.ConvertDocumentApi; 

Luego convierte un archivo:

 ApiClient defaultClient = Configuration.getDefaultApiClient(); // Configure API key authorization: Apikey ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey"); Apikey.setApiKey("YOUR API KEY"); ConvertDocumentApi apiInstance = new ConvertDocumentApi(); File inputFile = new File("/path/to/input.docx"); // File to perform the operation on. try { byte[] result = apiInstance.convertDocumentDocxToPdf(inputFile); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling ConvertDocumentApi#convertDocumentDocxToPdf"); e.printStackTrace(); } 

Puede obtener una clave de API de conversión de documentos de forma gratuita desde el portal.

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 de 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 value-add 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.

Creo que JOD Converter es la forma más fácil de implementar. Consulte el enlace a continuación para obtener más información.

http://mytechbites.blogspot.in/2014/10/convert-documents-to-pdf-in-java.html

No he intentado usarlo para MS Word, pero he tenido éxito al leer documentos de MS Excel usando Apache POI – http://poi.apache.org/

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

Unoconv , es una herramienta python trabajada 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.