Was ist eine gute Java-API zum Erstellen von Word-Dokumenten?
Habe ich eine neue app werde ich arbeiten, wo ich generiert ein Word-Dokument mit Tabellen, Grafiken, ein Inhaltsverzeichnis und text. Was ist ein gutes API zu verwenden? Wie sicher sind Sie, dass es unterstützt Grafiken, Inhaltsverzeichnisse und Tabellen? Was sind einige versteckte gotcha ist, wenn Sie Sie verwenden?
Einige Klarstellungen:
- Ich kann nicht die Ausgabe einer PDF-Datei Sie wollen in ein Word-doc.
- Sie sind mit MS Word 2003 (oder 2007), nicht OpenOffice
- Anwendung läuft auf *nix-app-server
Es wäre schön, wenn ich beginnen konnte, mit einer Vorlage doc und füllen Sie nur einige Bereiche mit Tabellen, Grafiken, etc.
Edit: Mehrere gute Antworten, jede mit Ihren eigenen Fehler so weit wie meine aktuelle situation. Schwer zu Holen eine "endgültige Antwort" von Ihnen. Denke, ich werde lassen Sie es offen, und hoffe auf bessere Lösungen erstellt werden.
Edit: Die OpenOffice-UNO-Projekt scheint dem am nächsten, was ich wollte. Während der POI ist sicher mehr mainstream, es ist zu unreif für das, was ich will.
InformationsquelleAutor der Frage billjamesdev | 2008-10-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
2007 mein Projekt erfolgreich eingesetzt OpenOffice.org's Universal Network Objects (UNO) - Schnittstelle, um programmgesteuert generieren von MS-Word-kompatible Dokumente (*.doc), sowie die entsprechenden PDF-Dokumente, die aus einer Java-Web-Anwendung (Struts/JSP framework).
OpenOffice UNO auch können Sie bauen MS-Office-kompatible Diagramme, Tabellen, Präsentationen, etc. Wir waren in der Lage, dynamisch zu erstellen anspruchsvolle Word-Dokumente, einschließlich Diagrammen und Tabellen.
Wir vereinfacht den Prozess durch Vorlage MS-Word-Dokumente mit Lesezeichen-Einsätze, in die die software den Inhalt eingegeben, aber Sie können Ihre Dokumente ganz von vorne. Ziel war es, die software-Bericht erstellen-Dokumente, die ausgetauscht werden könnten und weiter optimiert, indem der end-Benutzer vor dem konvertieren als PDF-Datei, die für die Zustellung und Archivierung.
Optional können Sie die Erstellung von Dokumenten in OpenOffice-Formate, wenn Sie möchten, dass Benutzer mit OpenOffice statt MS-Office. In unserem Fall ist der Benutzer verwenden möchten MS-Office-tools.
UNO enthalten ist, innerhalb der OpenOffice-suite. Wir sind einfach verbunden, unsere Java-app-UNO-Bibliotheken innerhalb der suite. Ein OpenOffice-Software-Development-Kit (SDK) verfügbar, mit Beispiel Anwendungen und die UNO Developer ' s Guide.
Habe ich nicht untersucht, ob die neueste OpenOffice-UNO generieren kann MS-Office 2007 Open XML-Dokument-Formate.
Wichtige Dinge über OpenOffice UNO sind:
Hier sind einige nützliche Webseiten:
InformationsquelleAutor der Antwort
Ich denke Apache POI den job tun können. Ein mögliches problem in Abhängigkeit von der Nutzung Ihrem Ziel zu sein kann verursacht durch die Tatsache, dass HWPF ist noch in der frühen Entwicklung.
InformationsquelleAutor der Antwort Jorge Ferreira
Könnten Sie verwenden:
http://code.google.com/p/java2word
Ich implementiert diese API aufgerufen Java2Word. mit ein paar Zeilen code, generieren Sie ein Microsoft Word-Dokument.
ZB.:
Gibt es einige Beispiele, wie zu verwenden. Im Grunde müssen Sie eine jar-Datei.
Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen, wie Sie es einrichten.
*Ich schrieb dies, weil wir hatten eine wirkliche Notwendigkeit in einem Projekt. Mehr in meinem blog:
http ://leonardo-pinho.blogspot.com/2010/07/java2word-word-document-generator-from.html
*
cheers
Leonardo
InformationsquelleAutor der Antwort Leonardo
Versuchen Aspose.Worte für Java, es läuft auf jedem OS, wo Java installiert ist.
Wird es ausgegeben wird das Dokument im DOC -, DOCX-oder RTF-wenn Sie eine MS Word-Ausgabe-format. Alle Räumlichkeiten sind gleichermaßen gut.
Mithilfe dieser API können Sie ein Dokument erstellen, aus dem nichts, buchstäblich von Knoten und legen Sie die Formatierung Eigenschaften. Sie können auch ein DocumentBuilder, die bietet höhere Ebene Methoden wie erstellen Sie eine Tabelle, Zeile, ein Feld einzufügen, etc. Oder Sie können kopieren/Zusammenführen/verschieben Portionen zwischen vorhandenen pre erstellten Dokuments, sagen Sie, Sie wollen zu montieren ein Vertrag, einfach packen und kopieren Teile aus mehreren Dokumenten und Aspose.Worte verschmelzen die Stile, Listen-Formatierung etc, richtig in das resultierende Dokument.
Werden Sie in der Lage, fügen Sie ein TOC-Feld mit Aspose.Worte, aber wie von heute, wird das TOC-Feld benötigen Sie ein Feld aktualisieren, wenn das Dokument in Microsoft Word geöffnet wird. Wir werden jedoch zum release volle Unterstützung für TOC-Felder im Frühjahr 2010. E. g. es baut komplette Inhaltsverzeichnis in MS Word funktioniert es.
Bin ich auf die Aspose.Wörter team.
InformationsquelleAutor der Antwort romeok
Es wurde nur kurz erwähnt einmal, so würde ich mag, um den Anruf aus der docx4j Bibliothek, wie ich habe mehr Erfolg mit docx4j als alles andere. Apache POI-Unterstützung für Word-Dokumente ist nicht sehr gut. Auch, im Gegensatz zu Aspose.Worte, docx4j ist eine open-source-Bibliothek.
Der einzige Nachteil ist mit docx4j die Sie haben, um Office Open XML (docx) - format-Dokumente eher als OLE2-(doc) format-Dokumente. Dies ist das Standardformat für Word 2007, Word 2003 und früher müssen die Anwender installieren ein compatibility pack.
InformationsquelleAutor der Antwort Joshua Born
Versuchen Aspose.Worte für java.
InformationsquelleAutor der Antwort
Können Sie eine Java-COM bridge wie JAKOB. Wenn es von client-Seite, eine weitere Möglichkeit wäre die Verwendung von Javascript.
InformationsquelleAutor der Antwort Gulzar Nazim
Ich verwendet habe, Aspose.Worte zu tun Seriendruck in .NET. Ich glaube, dass Sie auch eine Java-version.
InformationsquelleAutor der Antwort tvanfosson
Gibt es ein Werkzeug namens JODConverter die Haken in open office verfügbar machen es-Datei-format-Konverter, es gibt Versionen als webapp (sitzt in tomcat), die Sie veröffentlichen, und ein command-line tool. Ich habe schon feuern html auf es und zu konvertieren .doc und pdf erfolgreich es ist in einem ziemlich großen Projekt noch nicht live gegangen, aber ich denke, ich werde es zu benutzen.
http://sourceforge.net/projects/jodconverter/
InformationsquelleAutor der Antwort Andrew Hancox
iText ist wirklich einfach zu bedienen.
Wenn Sie requiere doc-Dateien, die Sie aufrufen können abiword (frei lightweigh multi-os-text-procesor) von der Kommandozeile aus, es hat mehrere conversion-format konvertieren Optionen.
InformationsquelleAutor der Antwort
docx4j oder poi, die beide ASL v2
@wondersofcomputing: iText ist tatsächlich kostenlos und open-source -
InformationsquelleAutor der Antwort JasonPlutext
Bill, der POI und iText-API sehr ähnlich sind und aus einem Programmier-Perspektive. Ich habe mit beiden in der Vergangenheit und fand Sie beide einfach zu bedienen und gut dokumentiert.
Mit iText gewinnen Sie den Vorteil, dass Sie in der Lage, wechseln zwischen den Formaten (RTF und PDF) mit der geringfügigen änderung der code. Wenn ich mich richtig erinnere den Inhalt gelegt ist, unter Verwendung der gleichen Anrufe und legen Sie dann als PDF-oder RTF-mit ein paar Zeilen code.
Aber ich glaube, dass die Formatierung in RTF ist begrenzt im Vergleich zu DOK. Ich weiß nicht, ob Sie in der Lage sein zu implementieren, die erweiterte Funktionen, die Sie suchen (Tabellen, inline-Bilder) ohne eine anständige Menge an Aufwand, wenn überhaupt.
Gegeben, was Sie gesagt haben, dass über HWPF nicht genug Funktionalität für Ihren Bedarf (ich habe nur befasste sich mit der Excel-Seite einen POI) zu Ihren beste Wette sein kann, um zu überzeugen die Kräfte, die PDF ist die beste Technik für den job.
InformationsquelleAutor der Antwort James McMahon
Entwickelt ich pure XML-basierte word-Dateien in der Vergangenheit. Ich verwendet .NET, aber die Sprache sollte keine Rolle spielen, da es wirklich XML. Es war nicht die einfachste Sache zu tun (hatte ein Projekt, Bedarf es vor ein paar Jahren.) Diese tun nur arbeiten in Word 2007 oder höher - aber alles, was Sie brauchen, ist Microsoft white paper, die beschreiben, was Sie jeden tag tut. Sie erreichen alles, was Sie wollen, mit den tags die gleiche Weise, wie wenn du mit Word (natürlich ein wenig schmerzhaft, anfangs.)
InformationsquelleAutor der Antwort schmoopy
Nach ein wenig mehr Forschung, stieß ich auf iText, PDF-und RTF-Datei-Erzeugung-API. Ich denke, ich kann die RTF generation zum erstellen einer Doc-lesbare Datei, die anschließend bearbeitet werden können mit Doc und erneut gespeichert.
Jemand irgendwelche Erfahrungen mit iText, in diesem Mode?
InformationsquelleAutor der Antwort billjamesdev
Noch eine andere Möglichkeit, denn dies ist eine web-app.
Konnte ich zum Rendern eine HTML-Seite mit dem MIME-Typ "application/msword", die verursacht den browser, um zu laichen Wort, das importiert den html-Prima, so dass änderungen vor und speichern Sie nur, als ob ich die Ausgabe einer real-Word-doc.
Tabellen funktioniert, aber Bilder habe ich noch nicht bekommen hatte, funktioniert noch. Es kann so einfach wie nur ein tag in der HTML, oder ich habe zu Strom ein getrennter Teil von der Reaktion mit den Bild-Daten im Binär-oder eine andere Methode habe ich nicht mit kommen noch. 🙂
InformationsquelleAutor der Antwort billjamesdev
Obwohl dies viel später, als der Wunsch, es könnte anderen helfen. Docmosis bietet eine Java-API zum erstellen von Dokumenten im doc -, pdf -, odt-format anhand von Dokumenten als Vorlagen. Es nutzt OpenOffice als der Motor, führen Sie die format-Konvertierungen. Dokument-manipulation und der Bevölkerung erfolgt durch Docmosis selbst.
InformationsquelleAutor der Antwort Paul Jowett