2010-06-11 15 views
35

Wie konvertiert man doc zu pdf mit java api. Wo Dokument enthält verschiedene Formate wie Tabellen in ms Wort. beim Konvertieren in PDF mit iText. Das tatsächliche Dokument sieht anders aus als das konvertierte PDF. Bitte geben Sie keine API an, die für die Konvertierung installiert ist. muss ein Open-Source seineWie MS doc in pdf konvertieren

Antwort

38

Dies ist eine ziemlich schwierige Aufgabe, immer schwieriger, wenn Sie wollen perfekte Ergebnisse (unmöglich ohne Word) als solche die Anzahl der APIs, die alles nur für Sie in reinem Java tun und sind Open Source ist Null Ich glaube (Update: Ich bin falsch, siehe unten).

Ihre grundlegenden Optionen sind wie folgt:

  1. Mit JNI/einem C# Web-Service/etc Skript MS Office (nur Option für 100% perfekte Ergebnisse)
  2. das verfügbaren APIs Skript Open Office verwendet (90 +% perfekt)
  3. Verwenden Sie Apache POI & iText (sehr große Aufgabe, wird nie perfekt sein).

Update - 2016.02.11 Hier ist eine abgespeckte Kopie meiner Blog-Post zu diesem Thema, die bestehenden Produkte umreißt, die Word-to-PDF in Java unterstützen.

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

Drei Produkte, die ich kenne Office-Dokumente darstellen kann:

yeokm1/docs-to-pdf-converter Unregelmäßig beibehalten, rein Java, Open Source Krawatten zusammen eine Reihe von Bibliotheken der Umwandlung durchzuführen.

xdocreport aktiv entwickelt, reiner Java, Open Source Es ist Java API XML-Dokument mit MS Office (docx) oder Openoffice (ODT), Libreoffice (ODT) mit einem Java-Modell erstellt fusioniert Bericht zu erstellen und konvertieren wenn Sie ein anderes Format benötigen (PDF, XHTML ...).

Snowbound Imaging SDK Closed Source, reine Java Snowbound erscheint eine 100% Java-Lösung und die Kosten über $ 2.500 zu sein. Es enthält Beispiele, die beschreiben, wie Dokumente im Evaluierungsdownload konvertiert werden.

OpenOffice API Open Source, nicht um reine Java - Erfordert Open Office installiert Openoffice ist eine native Office-Suite, die eine Java-API unterstützt. Dies unterstützt das Lesen von Office-Dokumenten und das Schreiben von PDF-Dokumenten. Das SDK enthält ein Beispiel für die Konvertierung von Dokumenten (examples/java/DocumentHandling/DocumentConverter.java). Um PDFs zu schreiben, müssen Sie den "writer_pdf_Export" -Schreiber und nicht den "MS Word 97" -Schreiber übergeben. Oder Sie können die Wrapper-API JODConverter verwenden.

JDocToPdf-Toten wie von 2016.02.11 Verwendet Apache POI das Word-Dokument und iText lesen Sie die PDF zu schreiben. Völlig frei, 100% Java aber hat einige limitations.

+0

mlk, jede Chance, die Sie mehr auf Option # 1 erarbeiten könnten? Ich würde MS-made APIs für meine Situation aufrufen, selbst wenn es JNI verwendet, um das bestmögliche PDF-Rendering zu erhalten. – kwikness

+1

Ich habe das ein wenig untersucht (http://www.suodenjoki.dk/us/productions/articles/word2pdf.htm). Ich empfehle dies nicht, Microsoft stimme dem auch zu.Word ist nicht für die Automatisierung konzipiert. –

+1

http://support.microsoft.com/kb/257757/en-us Wenn ich dies tun müsste, würde ich Open Office verwenden. –

0

Ich habe nicht versucht, es für MS Word, aber ich habe mit Apache POI guten Erfolge zu lesen MS Excel-Dokumente hat - http://poi.apache.org/

0

Schauen Sie sich das Skript OpenOffice.org an, um die Arbeit für Sie zu erledigen.

0

Ich stimme den Postern zu, die OpenOffice als eine High-Fidelity-Import-/Exportfunktion für Word/PDF-Dokumente mit einer Java API auflisten und auch plattformübergreifend funktionieren. OpenOffice-Import/Export-Filter sind ziemlich leistungsfähig und behalten die meisten Formatierungen während der Konvertierung in verschiedene Formate, einschließlich PDF, bei. Docmosis und JODReports Value-Add, um das Leben einfacher zu machen als das OpenOffice-API direkt zu lernen, was aufgrund des Stils der UNO-API und der crash-bezogenen Fehler eine Herausforderung darstellen kann.

7

Sie können JODConverter für diesen Zweck verwenden. Es kann verwendet werden, um Dokumente zwischen verschiedenen Büroformaten zu konvertieren. wie zum Beispiel:

  1. Microsoft Office OpenDocument- und
  2. Jedes Format PDF vice versa
  3. Und viele weitere Umwandlung unterstützt auch
  4. Es kann auch als auch MS Office 2007-Dokumente in PDF konvertieren mit fast alle Formate

Mehr Details über sie hier zu finden: http://www.artofsolving.com/opensource/jodconverter

0

unoconv, es ist ein Python-Tool in UNIX gearbeitet. Während ich Java verwende, um die Shell in UNIX aufzurufen, funktioniert es perfekt für mich. Mein Quellcode: UnoconvTool.java. Sowohl JODConverter als auch unoconv sollen open office/libre office verwenden.

docx4j/docxreport, POI, PDFBox sind gut, aber sie fehlen einige Formate in der Konvertierung.

3

prüfen docs-to-pdf-converter on github aus. Es ist eine leichte Lösung speziell für die Umwandlung von Dokumenten in PDF.

Warum?

Ich wollte ein einfaches Programm, das Microsoft Office-Dokumente in PDF konvertieren kann, aber ohne Abhängigkeiten wie LibreOffice oder teure proprietäre Lösungen. Da Code und Bibliotheken zu konvertieren jedes einzelne Format im Internet verstreut ist, beschloss ich, all diese Lösungen in einem einzigen Programm zu kombinieren. Auf dem Weg, ich beschlossen, ODT-Unterstützung hinzufügen, da auch ich den Code gefunden.

Verwandte Themen