Word-Dokument-Erstellung-API in Java
Ich würde gerne erstellen Sie ein word-Dokument mithilfe einer Vorlage, ersetzen einige der Variablen (- Felder) und speichern Sie es als ein neues word-Dokument.
Ich dachte, Apache-POI, http://poi.apache.org/ ist es das beste für diesen Zweck?
können Sie Ihren Eindruck von ihm?
- Prüfen Sie hier: stackoverflow.com/questions/203174/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe mit POI vor und es ist sicherlich in der Lage zu generieren Word-Dokumente. Aber der Teufel steckt im Detail.
Wort hat Tausende von Funktionen: Sie können nummerierte Listen ab #13 mit negativen Einzüge in zwei verbundene Zellen einer Tabelle enthalten, die in einer anderen Tabelle, ist selbst Teil einer Kugel-Liste... Sie bekommen die Idee. Wenn der POI-Dokumentation sagt, Sie sind ein work in progress, das widerspiegelt, was wird wohl ein Ewiger Zustand, der versuchte, Sie zu fangen bis zu der (an uns, nicht dokumentierten) Spezifikation von Word.
Dokumente mit einem halbwegs "normalen" festlegen der verwendeten Funktionen werden gut unterstützt von POI, deren Schnittstellen und Methoden sind vernünftig und konsistent, aber manchmal erfordern ein bisschen Arbeit. Aber wie Pascal sagt, die Dokumente mit einem nicht zu exorbitanten Funktionsumfang unterstützt auch RTF.
Ich habe fast keine Erfahrung "zu tun" RTF aber es ist wahrscheinlich ein wenig einfacher als die Arbeit mit den POI.
Wenn Sie arbeiten in einer Umgebung oder für einen Kunden, der darauf besteht, dass Ihre erzeugten Dokumente werden
.DOC
eher als.RTF
, dann POI ist so ziemlich Ihre einzige Wahl, es sei denn, Sie können sich vorstellen, ein Schritt, mit dem Sie ein bit von Office-automation-umwandeln RTF in DOC.Update: ich habe ein paar weitere Ideen in der Zwischenzeit.
Mit POI oder das erstellen von RTF-Dokumenten ist etwas, das Sie tun konnte, das auf praktisch jeder Plattform. Bei meinem job, alle Server tun Verarbeitung wie diese passieren, um zu sein, unter Linux, zum Beispiel.
Jedoch, im wahrscheinlichen Fall, dass Ihre Programme unter Windows, es gibt eine alternative: Jacob http://www.land-of-kain.de/docs/jacob/
Jacob ist ein
COM
Schnittstelle für Java; im wesentlichen können Sie auf "remote control" Windows-Programme wie Word und Excel. Das Dokument, das ich im Zusammenhang mit oben ist nicht zu Jacob ' s eigene Website, aber auf einer einzigen Seite mit "cookie-cutter" Rezepte für die Verwendung von Jacob. Das Projekt ist auf SourceForge: http://sourceforge.net/projects/jacob-project/ Aber die Menschen behaupten, und das ist auch richtig so, dass die Dokumentation ist ein bisschen fehlt.Jacob hat den Vorteil gegenüber allen anderen Lösungen, dass man den Umgang mit dem "echten" Wort und daher alle Funktionen von Word stehen Ihnen zur Verfügung. Dies wäre eine alternative, wenn es detail-Aspekte des Dokuments, die gerade nicht behandelt werden, mit POI oder über das RTF-format.
Dies ist natürlich viel zu spät, Aber seit 2013 gibt es eine viel bessere, flexiblere Lösung, um word-Dokument-Erstellung.
http://www.docx4java.org/trac/docx4j
Habe ich sehr viel mehr Glück mit docx4j, als ich jemals mit POI.
Wenn Sie eine Vorlage verwenden, und nicht wollen, erstellen Sie das word-Dokument von Grund auf, für was weiß ich, ein POI ist eine ziemlich gute Lösung. Öffnen Sie die Vorlage und wählen Sie die Zonen, die Sie ersetzen möchten.
Sagen Sie POI ist immer noch developpement, aber ich ' ve wurde unter Verwendung es in der Produktion environnement und es funktioniert ziemlich gut im moment.
Ich bin nicht sicher, der exakte status der Word-Dokumente, Unterstützung in POI aber, nach den POI-website, die Arbeit ist noch im Gange (kann nicht sagen was dies genau bedeuten). So, zu dieser Zeit, würde ich nicht verwenden, POI, sondern versuchen zu generieren RTF-Dokument. Dafür konnte man :
Ich würde gehen für iText.
Ich weiß, diese Frage ist ein bisschen alt, aber ich denke, dass noch viele Menschen finden, diese mit Suchmaschinen, so dass ich nach einer anderen Möglichkeit, das zu tun, was Sie wollen, gleich hier:
Wenn das einzige Ziel ist es, eine Word-Vorlage und ersetzen einige der Werte, die Sie möglicherweise speichern Sie ein Word-Vorlage, die als einzelne xml (nicht docx) und dann die Verarbeitung mit einfachen Java und ohne Rahmen. Wenn Sie mehr tun wollen (z.B. erstellen von Listen oder Tabellen) Sie sollten auch verstehen das xml-format und schreiben Sie Ihre eigenen Helfer vor dem laden ein Framework wie POI.
Hier ist ein Beispiel, wie das geht:
http://dev-notes.com/code.php?q=10
Dies ist die schnelle version, wenn Sie möchten, eine schöne version, die Sie könnten versuchen, mit einem XML-Prozessor.
PS: die Benutzer können feststellen, dass die Endung der Datei ist nicht doc aber xml-und Sie kann die Schuld für das, aber das ist ok... nur benennen Sie es um, doc, word erkennt das format und jeder ist wieder glücklich 😉
Sollten Sie schauen in die Aspose.Worte Komponenten. Sie haben vor kurzem begonnen bietet eine Java-version der Komponente.
Finden Sie unter dem folgenden link: Aspose.Wort für Java
Diese unterstützt Word automation, Erstellung und erweiterte Funktionen wie E-mail Zusammenführen, ohne die Notwendigkeit für eine Instanz von Microsoft Word auf der Maschine. Die wirklichen Vorteile sind, dass Sie in der Lage sind zu arbeiten, im Rahmen einer aktuellen word-Dokument und nicht mit Kompromiss durch die Schaffung von RTF etc.
Die Java-version ist derzeit nicht als voll gekennzeichnet als der .Net-version, aber die wichtigsten Kern-Funktionen gibt es und Sie pushen sehr hart, um eine Funktion entsprechende version bald.
Auch, wenn Sie kaufen die Java-version erhalten Sie ein Jahr Kostenlose upgrades /support wie die neue releases erstellt werden.
Wenn Sie docx-Dokumente, docx4j ist eine option. Wie POI, seine open-source.
Ich erstellt und dieses verwenden: http://code.google.com/p/java2word