Frage

In meinem Web-Projekt, ich DocX Dateityp für die Aufnahme Berichtsvorlage verwenden. Ich brauche DocX Dateityp in PDF zu konvertieren. Haben Sie .Net Code verwaltet, dass zu tun?

Ich kenne mehrere Möglichkeiten für diese Frage zu lösen. Aber es ist nicht Code und frei wie die folgenden Elemente verwaltet werden.

  • Word-12.0-Objektbibliothek programmatisch speichern ein Word 2007-Dokument entweder als PDF-Dokument oder ein XPS-Dokument. Aber es erfordert Office 2007 auf dem Server installiert wird.

  • Drucken durch einige freie PDF-Drucker wie PDFCreator . Aber ich brauche Programm für offene DocX auf dem Server wie Office 2007. Es ist sehr schlechte Idee.

  • Konvertieren von freiem Konverter-Programm. Aber Ergebnis ist nicht perfekt.

  • Verwenden Framework wie XF Rendering Server . Es ist sehr gute Idee, aber es ist nicht frei.

  • Erstellen Sie den gesamten Dokumentinhalt in PDF Api wie iTextSharp . Aber ich muss hart für die Erstellung von schönen Dokument versuchen.

  • oder erstellen Vorlagendokument mit anderem Dateiformat, das es zu DocX und PDF-Dateiformat exportieren. Darüber hinaus Endnutzer sollten leicht diese Datei bearbeiten. Wenn Sie wissen, sagen Sie mir bitte.

Danke,

War es hilfreich?

Lösung

Ich habe keinen Code für DocX zu PDF konvertieren, aber es scheint, Ihre Anforderung für DocX ist nicht fest. Ihre letzte Kugel sagt:

  

oder Vorlagendokument mit anderen erstellen   Dateiformat, das es zu DocX exportieren   und PDF-Dateiformat. Außerdem,   Endnutzer sollten diese leicht bearbeiten   Datei. Wenn Sie wissen, sagen Sie mir bitte.

Ich lese dies bedeuten Sie eine Vorlage Dokument können, erstellen möchten, füllen sie mit Daten und PDF verdeckte, aber die Vorlage erlauben beibehalten, richtig?

Lösung: XSL-FO

XSL-FO ist ein W3C-Standard wie HTML und kann durch eine Reihe von Open Source und kommerziellen Produkten in PDF umgewandelt werden, WordML, XPS, PS, PCL, SVG, TIFF, etc. Ich habe diese verwendet hunderte zu liefern tausende von Dokumenten pro Monat, sowohl online als PDF-Dateien und offline (Dinge wie Bulk-Scheckdruck).

Sie, um loszulegen, hier ist der W3C Seite für XML-FO . Es gibt eine Menge guter Informationen gibt, einschließlich einer Liste von Software (sowohl Open-Source und commecial) auf der linken Seite. Ich habe persönlich zwei kommerzielle Produkte verwendet genannt IBEX PDF Creator und XEP von RenderX . Beide sind ausgezeichnete Produkte, und es gibt eine 100% managed C # -Implementierung zu PDF erhalten genannt FO.NET up auf CodePlex. Ich habe nicht versucht, aber es sollte Ihr „frei“ Kriterium erfüllen.

Es gibt eine Reihe von Möglichkeiten, wie Sie die Vorlage bearbeiten können Dokumente in XSL-FO erstellt werden. Normalerweise ist diese Vorlage XSLT, dass Sie auf Ihre XML-Daten gelten, aber dies ist keine Voraussetzung. Ich habe diese von Hand gebaut, aber es ist ein bisschen eine Lernkurve. Sie können mit einem Dokument in XSL-FO beginnen und in den Abschnitten davon mit Code füllen, so wie Sie kann HTML. Die gute Nachricht ist, dass es sind eine Reihe von < a href = "http://www.renderx.com/tools/datastyler.html" rel = "noreferrer"> XSL-FO Editoren gibt. Die schlechte Nachricht ist, dass kein Ich kenne sind kostenlos, aber einige von ihnen sind billig und Sie können etwas, das trifft das freie Kriterium mit einem bisschen googeln finden. eine Option ist jedoch, dass Sie aus Word mit einem Sheet umwandeln können ( kommerzielle & free ).

Andere Tipps

Installieren von Office 2007 und mit der Word-12-Objektbibliothek ist auf jeden Fall die Option, die ich für gehen würde (und so weiter einige meiner eigenen Projekte getan habe).

Wenn Sie nicht möchten, dass Word auf einem Produktions-Web-Server installieren, warum haben sie nicht auf einem sekundären Server. Sie können diesen zweite Server mit dem ersten kommunizieren erhalten (einem Web-Service oder etwas ähnliches verwenden.) - es könnte das nächste Word-Dokument verlangt, dass Bedürfnisse zu exportieren, um die Umwandlung zu tun und dann die PDF-Daten zurück

Lassen Sie mich wissen, wenn Sie ein C # Beispiel für die Word-Automatisierung wollen, dass diese Umwandlung funktioniert (es ist sehr trivial).

Adrian


Hier ist mein Code, Jason geschrieben. Dies funktioniert mit Word 2007. Sie müssen den PDF-Exporteur von der Office-Website herunterladen und installieren:

using Microsoft.Office.Interop.Word;

...

object _read_only = false;
object _visible = true;
object _false = false;
object _true = true;
object _dynamic = 2;
object  _missing = System.Reflection.Missing.Value;

object _htmlFormat = 8;        
object _pdfFormat = 17;
object _xpsFormat = 18;

object fileName = "C:\\Test.docx";

ApplicationClass ac = new ApplicationClass();
//ac.Visible = true; // Uncomment to see Word as it opens and converts the document
//ac.Activate();

Document d = ac.Documents.Open(ref fileName, ref _missing, ref _true, ref _read_only, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _visible, ref _missing, ref _missing, ref _missing, ref _missing);

object newFileName = ((string)fileName).Substring(0, ((string)fileName).LastIndexOf(".")) + ".pdf";

d.SaveAs(ref newFileName, ref _pdfFormat, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing);

d.Close(ref _false, ref _missing, ref _missing);
ac.Quit(ref _false, ref _missing, ref _missing);

ac = null;

Also, Soul_Master, was Sie sagen, ist, dass Sie nicht verwenden Interop wollen (obwohl man nicht sagen, warum, die ich interessiert wäre zu wissen), Sie wollen nicht zu zahlen für eine kommerzielle Exporteur, und Sie wollen perfekte Ergebnisse?

Ich kann Ihnen helfen, ich habe Angst. Interop finden Sie perfekte Ergebnisse geben, jedes Mal, und Sie haben die Software bereits. Wenn Sie nicht, dass verwenden, werden Sie ein Opfer bringen müssen -. Entweder Kosten oder Qualität

Hat Open Office hat eine API? dass zumindest wäre eine freie Wahl sein?

Erstellen Sie das PDF ein Reporting-Tool wie Activereports mit / Crystal Reports (viel einfacher als die Verwendung iTextSharp)

Ich habe meine Probleme mit docx zu pdf Konvertierung mit einem freien Komponente namens Free Spire.Doc gelöst. Sie können weitere Informationen auf dieser Seite . Es ist ganz einfach Ihre Benutzung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top