Come convertire MS doc in pdf

Come convertire doc in pdf usando java api. dove il documento contiene vari formati come tabelle in ms word. quando si converte in pdf usando iText. dove il documento attuale sembra diverso dal pdf convertito. si prega di fornire api non un exe installato per la conversione. deve essere una fonte aperta

Questo è un compito abbastanza difficile, sempre più difficile se si vogliono risultati perfetti (imansible senza usare Word) in quanto tale il numero di API che fanno tutto per te in puro Java e sono open source è zero credo ( Update: I am wrong , vedi sotto ).

Le tue opzioni di base sono le seguenti:

  1. Utilizzo del servizio Web JNI / a C # / script ecc MS Office (opzione solo per risultati perfetti al 100%)
  2. Utilizzando lo script API disponibili Open Office (90%% perfetto)
  3. Usa Apache POI e iText (un lavoro molto grande, non sarà mai perfetto).

Aggiornamento – 11-02-2016 Ecco una copia ridotta del post sul mio blog su questo argomento che descrive i prodotti esistenti che supportano Word-to-PDF in Java.

Conversione di documenti Microsoft Office (Word, Excel) in PDF in Java

Tre prodotti che conosco possono rendere documenti Office:

yeokm1 / docs-to-pdf-converter Irregolarmente gestito, Pure Java, Open Source Collega insieme un numero di librerie per eseguire la conversione.

xdocreport Sviluppato triggersmente, Pure Java, Open Source È Java API per unire documenti XML creati con MS Office (docx) o OpenOffice (odt), LibreOffice (odt) con un modello Java per generare report e convertirli se necessario in un altro formato ( PDF, XHTML …).

SDK chiuso Snowbound Imaging , Pure Java Snowbound sembra essere una soluzione Java al 100% e costa oltre $ 2.500. Contiene esempi che descrivono come convertire i documenti nel download di valutazione.

OpenOffice API Open Source, non puro Java – Richiede Open Office installato OpenOffice è una suite nativa di Office che supporta un’API Java. Questo supporta la lettura di documenti Office e la scrittura di documenti PDF. L’SDK contiene un esempio nella conversione dei documenti (esempi / java / DocumentHandling / DocumentConverter.java). Per scrivere PDF è necessario passare lo scrittore “writer_pdf_Export” anziché quello “MS Word 97”. Oppure puoi utilizzare l’API wrapper JODConverter .

JDocToPdf – Dead as of 2016-02-11 Usa POI Apache per leggere il documento Word e iText per scrivere il PDF. Completamente gratuito, 100% Java ma presenta alcune limitazioni .

È ansible utilizzare JODConverter per questo scopo. Può essere utilizzato per convertire documenti tra diversi formati di ufficio. ad esempio:

  1. Microsoft Office per OpenDocument e viceversa
  2. Qualsiasi formato in PDF
  3. E supporta anche molte altre conversioni
  4. Può anche convertire documenti MS Office 2007 in PDF con quasi tutti i formati

Maggiori dettagli a riguardo possono essere trovati qui: http://www.artofsolving.com/opensource/jodconverter

Scopri docs-to-pdf-converter su github . È una soluzione leggera progettata specificamente per la conversione di documenti in pdf.

Perché?

Volevo un semplice programma in grado di convertire i documenti di Microsoft Office in PDF ma senza dipendenze come LibreOffice o costose soluzioni proprietarie. Visto come il codice e le librerie per convertire ogni singolo formato sono sparsi sul web, ho deciso di unire tutte queste soluzioni in un unico programma. Lungo la strada, ho deciso di aggiungere anche il supporto ODT dal momento che ho incontrato anche il codice.

È ansible utilizzare la libreria Java nativa Cloudmersive. È gratuito per un massimo di 50.000 conversioni al mese ed è molto più fedele nella mia esperienza rispetto ad altri metodi come iText o Apache basati su POI. I documenti in realtà hanno lo stesso aspetto che hanno in Microsoft Word, che per me è la chiave. Per inciso, può anche eseguire XLSX, PPTX e la conversione legacy DOC, XLS e PPT in PDF.

Ecco come appare il codice, per prima cosa aggiungi le tue importazioni:

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; 

Quindi converti un file:

 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(); } 

È ansible ottenere una chiave API di conversione dei documenti gratuitamente dal portale.

Sono d’accordo con i manifesti che elencano OpenOffice come una funzione di importazione / esportazione ad alta fedeltà di documenti word / pdf con un’API Java e funziona anche su piattaforms diverse. I filtri di importazione / esportazione di OpenOffice sono piuttosto potenti e preservano la maggior parte della formattazione durante la conversione in vari formati, incluso il PDF. Docmosis e JODReports aggiungono valore per semplificare la vita rispetto all’apprendimento diretto dell’API di OpenOffice, il che può risultare difficile a causa dello stile dell’API UNO e dei bug relativi agli arresti anomali.

Penso che JOD Converter sia il modo più semplice per implementare, per favore fai riferimento al link sottostante per maggiori informazioni.

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

Non ho provato a usarlo per MS Word, ma ho avuto un buon successo leggendo documenti MS Excel usando POI Apache – http://poi.apache.org/

Cerca negli script OpenOffice.org di fare il lavoro per te.

unoconv , è uno strumento python lavorato in UNIX. Mentre utilizzo Java per invocare la shell in UNIX, funziona perfettamente per me. Il mio codice sorgente: UnoconvTool.java . Si dice che sia JODConverter che unoconv utilizzino l’ufficio open / libre office.

docx4j / docxreport, POI, PDFBox sono buoni ma mancano alcuni formati in conversione.