DOCX in PDF ... mit benutzerdefinierten Dokumenteigenschaften

1703
WernerCD

TLDR : Wie kann ich ein DOC (X) in eine PDF-Datei konvertieren und CustomDocumentProperties und -Felder beibehalten, sodass ich die benutzerdefinierten Eigenschaften programmgesteuert aktualisieren und die PDF-Datei über einen Windows-Dienst drucken kann ?

! TLDR

Wir haben eine eigene In-House-Anwendung, die die DOCX-Erstellung kombiniert - gefolgt von Aktualisierungen vor Ort und Drucken. Die Anwendung, wie sie ist - ein auf Windows Form basierendes Programm - funktioniert, muss jedoch von der Benutzeroberfläche aus ausgeführt werden. Ich möchte dieses Programm aktualisieren, um von einem Windows-Dienst ausgeführt zu werden.

Das Problem mit DOCX in einem Windows-Dienst wird gedruckt. Word muss auf dem Server installiert sein. Word lässt sich außerhalb einer Benutzeroberfläche nicht gut abspielen - Modale Dialoge, Eingabeaufforderungen des Benutzers (Möchten Sie eine davon wiederherstellen? Möchten Sie die Bearbeitung dieses Dokuments aktivieren? Usw.), erforderliche Registrierungseinträge usw.

Ich bin dabei, unseren Workflow an PDF-Dateien auf dem Server anzupassen.

Arbeitsablauf

DOC (X) Vorbereitung / Erstellung (manuell, nicht im Programm):

  • VBScript importieren / ausführen:
    • Holen Sie sich Tabellen- / View-Spalten aus einer Datenbank.
    • Jede Spalte wird in eine benutzerdefinierte DocumentProperty eingefügt.
  • Fügen Sie die gewünschten benutzerdefinierten Eigenschaften in das Dokument ein.

Also CustomerName, AddressLine1, City, etc als CustomDocumentProperties hinzukommen ... dann die Felder gehen in den richtigen Stellen auf einem Formular automatisch in dem automatisierten Programm zu drucken.

DOCX-Verwendung (automatisch, im Programm):

  • Ziehen Sie eine Reihe von demselben Tisch
  • Geben Sie korrekte Daten in jedes CustomDocumentPropertyField ein
  • Felder aktualisieren (ersetzt CustomerNamedurch Doe, John, Citymit Whovilleusw.)
  • Drucken Sie das Dokument an den richtigen Drucker

Gewünschte Änderungen

Ich freue mich darauf

ein. Konvertieren Sie das DOC (X) so in ein PDF, dass die benutzerdefinierten Eigenschaften übertragen werden und die Felder ersetzt werden können. Wäre 1) Erstellen Sie DOCX (viele davon existieren derzeit und sind der aktuelle Workflow), 2) In PDF konvertieren, 3) PDF aktualisieren / drucken. PRO: Fortgesetzte Verwendung von Word-Produkten, mit denen die Kunden zufrieden sind / geschult werden. CONS: Möglicherweise komplexe docx / pdf-Konvertierung in der Mitte als Gegenleistung für den einfacheren PDF-Druck innerhalb eines Windows-Services.

b. Ersetzen Sie DOC (X) vollständig und verwenden Sie stattdessen PDF-Erstellungstools. PRO: Gleicher zweistufiger Prozess. CON: Benutzer sind an die Erstellung von DOC (X) gewöhnt. Möglicherweise ist zusätzliche Software / Schulung erforderlich. Viele Dokumente müssten konvertiert werden.

c. Arbeiten Sie mit DOCX als Dienst um und drucken Sie ihn innerhalb eines Dienstes aus.

Diese Frage untersucht a- DOC(X) conversion to PDF. Bei einem Word-Dokument mit benutzerdefinierten Dokumenteigenschaften und Feldern, die in das Dokument eingefügt wurden ... Ich scheine diese Eigenschaften zu verlieren UND die Felder werden durch die aktuellen Werte ersetzt, wenn ich Save As PDFin Word über PDF konvertiere . Welche andere praktikable Möglichkeiten gibt es in PDF zu konvertieren - diese Information für Schritt zu halten 2) DOCX Usage/Printing.

1
Ich denke, Sie sollten besser herausfinden, wie .docx-Dateien ohne Word erstellt / aktualisiert werden können, z. B. Verwenden des Office Open XML SDK. Aber Sie müssen wirklich von VBScript wechseln oder einige VBScript-aufrufbare Bibliotheken schreiben. Werfen Sie einen Blick auf Eric White's Document Builder-Material für einige Hinweise. vor 10 Jahren 0
@bibadia Das Hauptproblem beim Festhalten an DOCX ist nicht das Bearbeiten / Aktualisieren von Dokumenten (ich habe eigentlich versucht, den aktuellen Prozess mit OOXML zu aktualisieren, und glaube nicht, dass dieser Teil aufwendig wäre.). * THE * Problem ist das Drucken innerhalb eines Windows-Dienstes (Gewünschte Änderung: GUI für Windows-Dienst). Alles, was ich gelesen habe, besagt, dass ein Wort auf dem Server installiert werden muss und dieses Wort nicht als Dienst geeignet ist (modale Dialogfehler, Anfragen nach Benutzerinteraktion zu Fehlern, erforderliche Benutzerregistryeinträge usw.). WernerCD vor 10 Jahren 0
@Werner, Sie können sich Aspose.Words für .NET ansehen, das benutzerdefinierte Dokumenteigenschaften beibehalten kann, wenn Sie DOCX in PDF konvertieren, ohne die Wortautomation zu verwenden. Es wird auch in einem Serverszenario vollständig unterstützt. Adam vor 10 Jahren 0

1 Antwort auf die Frage

0
StartCoding

Verwenden Sie pdfsharp, es handelt sich um eine Open Source-Bibliothek. Sie können die benutzerdefinierten Eigenschaften von pdf folgendermaßen einstellen:

PdfDocument document = PdfReader.Open("c:\\Test.pdf");  document.Info.Elements.Add( new KeyValuePair<String, PdfItem>("/MyKey", new PdfString("MyValue"))); document.Save("c:\\test.pdf");