Beste Weg, um erstellen/fill-in gedruckter Formulare und PDF-Dateien?
Haben wir eine C# - Anwendung, die müssen drucken komplexer Formen. Dinge wie multi-page-Regierung compliance-Formen, die müssen in einem bestimmten format vorliegen. Wir bekommen PDF-Kopien dieser Formulare und Formularfelder zu erstellen, aber nicht genau wissen, wie füllen Sie diese Daten aus und erstellt eine PDF-Datei kann automatisch gedruckt und an unsere Kunden (Sie müssen eine Kopie auf Papier).
Auch einige der Formen sind dynamisch, in, dass bestimmte Seiten wiederholt werden müssen (beispielsweise für eine Mitarbeiter-die Chancengleichheit, audit-Bericht, den wir vielleicht brauchen, um 5 Kopien einer Seite in das Formular, wenn es hat 50 Mitarbeiter, aber der Kunde hat 250).
Im Allgemeinen, was ist der beste Weg, um zu füllen und drucken Sie diese Formulare? Beachten Sie, dass unsere Anwendung ist in C#basiert, aber jede Lösung in einer beliebigen Sprache/app, ist willkommen (wir sind offen für den Kauf von software oder die Integration mit anderen frameworks, wenn nötig).
Zum Beispiel - was würde so etwas wie TurboTax verwenden Sie zum drucken der Hunderte von Steuer-Formulare, die Sie verarbeitet?
- Unser Produkt Gnostice PDFOne .NET können Sie neue PDF-Formulare erstellen und ausfüllen, sondern auch vorhandene Formular-Felder. PDFOne ist eine Drucker-Komponente, mit der Sie drucken können, PDF-Dokumente. Wir veröffentlichten ein paar Artikel über Durchführung im Zusammenhang mit PDF anfallenden Aufgaben in C#. Einer von Ihnen ist ein Artikel mit dem Titel Erstellen Sie eine Auto-Druck-PDF, aber ich bin mir nicht 100% sicher, ob das erfüllt deine Anforderung. Es ist ein weiterer Artikel mit dem Titel [PDF-Overlay - Stitching PDF-Seiten Zusammen .NETTO](gnostice.com/n
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier gibt es mehrere Optionen.
1) EFD, Formular-Daten-Format. Und das ist eine schreckliche spec-Dokument, es deckt nur eine kleine (selten verwendet, kompliziert) Teil des FDF-format. FDF-Dateien sind ziemlich trivial zu erzeugen und enthalten einen Haufen von Feld/Wert-Paare (und halten kann, der Liste der Optionen, und anderen ausgefalleneren Sachen, die Sie nicht brauchen) und ein file association. Öffnen Sie die FDF-füllt das PDF (über Datei-Verbindung mit acrobat/reader).
Hier ein Beispiel (mit extra-Leerraum, damit es besser lesbar):
"/V" zeigt ein Feld mit dem Wert, "/T" ist ein Feld Titel. "/F" ist der Pfad zu dem Formular gefüllt werden.
Gibt es eine Reihe von E-mail-merge-artige Produkte im Umlauf, die in einer FDF-und PDF-Datei und erzeugen ein ausgefülltes PDF-Formular. Die oben genannten iText (und einige andere) kann dies programmatisch tun, andere apps haben Befehlszeilen.
Jede Seite, die ggf. wiederholt werden muss, sollte es sein, die eigene form, die in dieser Umgebung. Zusammenführen von Formen, kann Ziemlich Hart sein. Es gibt ein paar Ansätze, der einfachste von Ihnen zu "glätten" auf den Feldern, so dass Sie nur den Inhalt einer Seite (line-art & text)... dann bist du nicht wirklich Zusammenführen von PDF-Formularen nicht mehr.
Natürlich, wenn Sie können die Reihenfolge Steuern, in der die Dinge gedruckt werden, brauchen Sie nicht verschmelzen die Formen überhaupt. Sie nur öffnen/drucken Sie Sie in der richtigen Reihenfolge.
Soweit ich mich erinnere, Acrobat Pro batch-Befehle importieren können FDF-Daten und drucken. Alles, was man hätte tun müssen, wäre zu generieren, die passenden FDF-Dateien, die meist trivialen string-Gebäude.
Mit FDF setzt Voraus, Sie haben die PDF-Formulare bereits gemacht, die nur darauf warten, ausgefüllt werden. Wenn das nicht der Fall ist...
2) erstellen Sie Ihre PDF-Formulare programmgesteuert. Ich mache das mit iText (Java basis von iTextSharp), obwohl es durchaus ein paar Bibliotheken in verschiedenen Sprachen verfügbar. iText[Scharf] ist lizensiert unter der AGPL (oder kommerziell). Mit AGPL, jedermann mit Zugang zu Ihrem AUSGANG, müssen Sie Zugriff auf den Quellcode Ihrer Anwendung. AGPL ist genauso "viral" wie die normale GPL. Ältere Versionen wurden unter der MPL.
Gegeben, dass diese ausschließlich zu internen, und dass Sie zum drucken der PDF-Dateien, die Lizenzierung ist nicht viel von einem Problem.
Wäre es wesentlich effizienter, generieren Ihre form Vorlagen einmal, dann füllen Sie Sie in... entweder direkt oder über FDF.
Können Sie versuchen,Docotic.Pdf-Bibliothek. Diese Bibliothek ermöglicht es, Formulare auszufüllen bei vorhandenen Dokumenten, importieren und exportieren von FDF-Daten, sowie das ändern vorhandener Dokumente und Formulare erstellen, die von Grund auf neu.
Mehrere Proben:
Wie fülle vorhandener Formulare
Wie import der FDF-PDF-Dokument
Wie erstellen text-Felder
Docotic.Pdf kommt mit kommerziellen und freien Lizenzen.
Teilweise Antwort auf Ihre Frage ist, dass, sollten Sie prüfen, "ItextSharp" - Bibliothek ist ein open-source-Bibliothek und ist nützlich bei der Erstellung von PDF-Dateien.
http://sourceforge.net/projects/itextsharp/
Den oben funktioniert mit einer beliebigen Anzahl von Feldern auf jeder PDF-Seite aber erfordert
einige rudimentäre Kenntnisse der zugrunde liegenden OS-print-Prozesse.
Es gibt Ihnen die volle Kontrolle über die Seite und das bedeutet, Sie können Kreuz, drucken Sie über, usw.... Sie können tun, was Sie möchten.
Ich sehe überhaupt kein problem in der Umwandlung zu VS 2017 und C#.
Keine Bibliothek notwendig - nur plain old fashioned Codierung von hand.
Wenn Ihr Formular ist auf der Grundlage der AcroForm-Technologie: nutzen Sie Einfach die itext7 um diese Aufgabe zu erfüllen. Fügen Sie es zu Ihrem Projekt durch ausführen folgenden Befehl in der NuGet Package Manager Console:
Schreiben ein bestimmtes Formular-Feld, verwenden Sie code wie diesen:
In diesem snippet
src
ist die Quelle einer PDF-Datei unddest
ist der Pfad zu der resultierenden PDF-Datei. Diekey
entspricht der name eines Feldes in Ihrer Vorlage. Dievalue
entspricht dem Wert, den Sie ausfüllen wollen. Wenn Sie möchten, dass das Formular, um die Interaktivität zu löschen, müssen Sie dieform.flattenFields();
sonst alle Formular-Felder entfernt werden, wodurch ein flaches PDF.verwenden wir aspose.Worte und ich sehe, Sie haben eine PDF API als gut.
Versuchen Sie es mit diesem: