2008-09-17 5 views
8

Ich muss ein Word-Dokument, das eine Vorlage von Arten ist ... sammeln Benutzereingaben, um bestimmte Felder in dieser Vorlage zu füllen .. dann generieren Sie eine PDF-Datei, die die abgeschlossen enthält Vorlage sowie einige andere Dokumenttypen. Hat jemand einen guten Vorschlag zu einer Komponente, um dies zu erreichen? Vorzugsweise eines, bei dem Microsoft Office nicht auf dem Webserver installiert werden muss.Generieren eines PDF-Dokuments auf der Grundlage einer Microsoft Word-Vorlage

Antwort

0

Gibt es einen Grund, Word zu verwenden? Wenn Sie mit einer PDF-Datei mit Formularfeldern beginnen, können Sie entweder dem Benutzer erlauben, die Felder auszufüllen, oder es programmatisch mit dem PDF-Stempler von iTextSharp machen.

Wenn Sie MSOffice 2000/2003-Komponenten programmgesteuert verwenden müssen, können Sie Office Web Components ausprobieren. Sie müssen auf dem Server installiert werden, können aber von .NET- und Com-Apps verwendet werden, um mit Office-Dateitypen zu interagieren. Weitere Informationen finden Sie hier ... http://en.wikipedia.org/wiki/Office_Web_Components

Wenn Sie sich auf einer Office-CD befinden, sollten Sie das OWC-Installationsprogramm für Ihre Version finden. Ich habe nicht mit 2007 gearbeitet, aber ich nehme an, dass etwas ähnliches verfügbar ist.

iTextSharp und OWC sind kostenlos, überprüfen Sie die Lizenz für weitere Details.

+0

Der einzige Grund, warum wir Word verwenden, ist die Benutzerfreundlichkeit. Diese Vorlagen ändern sich regelmäßig und müssen daher in der Lage sein, sie zu ändern, und die meisten Benutzer haben nur PDF Reader-Software installiert. Danke für Ihren Rat. :-) – Tyler

0

Hmmm ... Sie könnten CutePDF Drucker in einer kreativen Weise verwenden, um dieses Problem zu lösen. Im Wesentlichen braucht es alles, die über einen Standard-Druckertreiber eingegeben werden kann und daraus ein PDF erstellt. Es ist kostenlos.

+0

Ich bin mit CutePDF vertraut, da ich es persönlich benutze, um viele Dinge in PDF zu drucken. Ich habe nie darüber nachgedacht, es in einer Serverumgebung zu verwenden. Ich werde definitiv darüber nachdenken. – Tyler

6

Versuchen Sie Aspose Wörter für .net. Auf ihrer Website: "Aspose.Words ermöglicht .NET und Java-Anwendungen, Word®-Dokumente zu lesen, zu ändern und zu schreiben, ohne Microsoft Word zu verwenden." Verwenden von Aspose-Wörtern mit Aspose PDF ermöglicht die Ausgabe in PDF.

Eine Sache, die Sie nicht tun möchten, ist MS Word auf Ihrem Produktionsserver zu installieren. Das Laden dieser Objekte ist SLOW und EATS Speicher. Sie können den CutePDF Writer nicht verwenden, es sei denn, Sie installieren auch MS Word auf dem Server. Yeck.

0

Verwenden Sie die Apache POI-API, um die Felder zu füllen. Es kann in Word-Dokumente gelangen und auf ihre Elemente zugreifen.

Für den Word -> PDF-Schritt würde ich auch empfehlen, die Aspose-Lösung zu bewerten. Es kann sogar beide Schritte ausführen. Es ist jedoch nicht kostenlos.

0

Mein erster Gedanke für eine "Doc-Vorlage" + fusionieren zu PDF-Lösung wäre, mit offenen Office-Formaten zu beginnen. - Die ODT-Datei (Dokumentvorlage öffnen) ist XML-basiert - also könnten Sie sogar perl verwenden, um die Zusammenführung durchzuführen, dann rufen Sie das Dokument 2 des Verfassers an (ich habe keine Ahnung, ob sie eine API haben, aber weniger als ein Tag - auch wenn man die Quelle untersuchen musste.)

und konvertieren Sie Ihren "Wort" Punkt zu einem Writer Odt-Datei ist nur eine "Datei speichern als" -Operation in OoWriter.

0

Wenn Sie Aspose.Words verwenden, kann Ihr Eingabedokument/-vorlage in einem der unterstützten Formate sein, einschließlich DOC, DOCX.

Dann können Sie Daten auf verschiedene Arten in das Dokument einfügen. Sie können Lesezeichen in einem Dokument verwenden und nur ihren Text festlegen. Oder nutzen Sie besser die von uns bereitgestellte Reporting-Engine. Es ermöglicht die Verwendung von Standard-MS-Word-MERGEFIELD-Feldern sowie Funktionen zum Wiederholen von Regionen und sogar Verschachteln. Z.B. Sie können eine Rechnung (mit Eltern/Kind-Daten) Vorlage in MS Word entwerfen und dann aus einem .NET-DataSet in einer Codezeile auffüllen.

Außerdem benötigen Sie nur Aspose.Words, um PDF zu produzieren (vor einem Jahr benötigten Sie beide Aspose.Wörter und Aspose.Pdf). Sie können das exakt gleiche Dokument auch in DOC, DOC, DOCX und einigen anderen Formaten speichern.

Ich bin im Aspose.Words Entwicklerteam.

0

Werfen Sie einen Blick auf die Muhimbi PDF Converter Web Services. Es wird unter Windows als Dienst ausgeführt, kann jedoch von jeder anderen Umgebung als Windows Web Services aus aufgerufen werden, einschließlich Java und .NET.

Obwohl diese Lösung erfordert, dass MS-Office auf einem Server installiert wird (nicht notwendigerweise derselbe Server wie Ihre Anwendung), ist es sehr robust und bietet eine perfekte Konvertierungstreue.

Um MS-Word-Dateien zu generieren oder zu ändern, empfehle ich die kostenlose Open XML SDK for Microsoft Office. Eric White unterhält eine really good Blog darüber.

Disclaimer, ich habe an diesem Produkt gearbeitet. Nachdem das gesagt wurde, funktioniert es großartig.