2009-08-11 5 views
2

Ich habe Leute gesehen, die im Web darüber sprechen, mir wurde geraten, das zu tun, aber es sieht so aus, als ob die iText-Rendering-Engine weit davon entfernt ist, MS-Word (openoffice, TeX) zu entsprechen. Und ein DOC zu interpretieren ist sowieso nicht trivial (J.Spolsky erklärte warum), also bin ich ein bisschen skeptisch.Hat wirklich jemand jemals eine .doc-Datei mit POI gelesen und ein iText-Dokument damit erstellt?

Ich würde das gerne für ein Projekt tun, aber ich kann nichts im Netz finden, ich denke, der einfachste Weg wäre, openoffice zu modularisieren und das Eingabesystem, das Layoutsystem und das Ausgabesystem zu erfassen, Verlassen der Benutzeroberfläche auf der Bank. Aber das nächste, was ich gerade im Netz sehe, ist die Verbindung mit einer Live-Instanz von OpenOffice/MS Office und das Senden von Befehlen (lies .doc, PDF erzeugen) an sie.

Haben Sie Code im Web, um dies anzuzeigen [lesen Sie .doc -> bearbeiten Sie ein wenig im Dokument (fügen Sie eine kleine Tabelle, füllen Sie Leerzeichen) -> PDF erzeugen] mythische Kette?

Antwort

2

Ich würde vermuten, dass dies wirklich nur hypothetisch möglich ist. Das heißt, es hört sich an, als ob die fragliche Software es tun sollte, aber die Realität ist ganz anders. Wie Sie zu Recht feststellen, sind DOC und PDF sehr unterschiedliche Formate, und die einzige Möglichkeit, eine originalgetreue Eins-zu-Eins-Übersetzung eines DOC als PDF zu erstellen, wäre das Drucken und Erfassen der Ausgabe, ähnlich wie dies bei vielen PDF-Erstellern der Fall ist.

POI und andere Software wie Aspose.Words können Sie die Struktur eines DOC lesen, und iText lässt Sie ein PDF erstellen, aber es gibt sicherlich eine Million kleine Schwächen und Kantenfälle in beiden bedeutet Jede Implementierung eines Konverters ist sicher nicht trivial. Von meinem Kopf her kann ich Ihnen sagen, dass iText schlechte Unterstützung für das Teilen von Zeilen in Tabellen hat. In einem Projekt, an dem ich gearbeitet habe, mussten Zeilen-geteilte Tabellenzellen als eine Art "PDF-Bild außerhalb des Bildschirms" gerendert und das Bild dann in eine einzelne Tabellenzelle eingebettet werden. Ein angenehmer Hack am Ende, aber Sie würden sehr schwer sein, einige der reicheren Features zu reproduzieren, die DOC unterstützt, bevor Sie überhaupt anfangen, über eingebettete OLE-Objekte, ActiveX-Steuerelemente, AutoFormen, Sprachen von rechts nach links, nachzudenken. usw. Und vergessen wir nicht, dass jede Version von Word neue Funktionen zu DOC einführt und Dinge behebt, die in älteren falsch sind.

Für einfach genug Dokumente könnten Sie in der Lage sein, mit wenig Aufwand ein vernünftiges Ergebnis zu erzielen. Ich habe es nie getan, und ich würde es nicht wirklich versuchen wollen, weil ich weiß, dass die Ergebnisse mittelmäßig sein würden, sobald die Komplexität des Quelldokuments über Absätze und Kopfzeilen hinausgeht. Was auch immer Sie versuchen, ich würde Sie ermutigen, zuerst nach einem anderen Weg zu suchen.