Unsere ZUGFeRD Bibliothek ist nicht auf ZUGFeRD limitiert. Zum Beispiel ist es ganz einfach PDF Formfelder auszufuellen.
Dazu gibt es im ZUGFeRD Toolkit eine eigene Klasse: PDFForms
Sollten Sie die COM Version der .NET Version vorziehen koennen Sie diese Library auch ueber COM referenzieren. Eine vereinfachte COM Schnittstelle gibt es im PDF Signator:
http://www.aloaha.com/pdf-applications/aloaha-pdf-signator/programmatically-fill-pdf-forms-and-digitally-sign-them/
Bei der Erstellung der Klasse definieren Sie auch gleich die Eingangs- und Ausgangs PDF sowie den Lizenzschluessel:
Dim InputPDF As String = “d:\pdf2\muster10.pdf”
Dim OutputPDF As String = “d:\pdf2\new.pdf”
Dim ForcePDFA As Boolean = True
Dim LicenseKey As String = “N2DEYTN3T63A3QMJBSLDLZOP7I”
Dim pform As New Aloaha_ZUGFeRD.PDFForms(InputPDF, OutputPDF, ForcePDFA, LicenseKey)
Im obigen Beispiel benutzen wir das Formular “Überweisungsschein für Laboratoriumsuntersuchungen als Auftragsleistung”: muster10.pdf
Ein anderes Beispiel ist: “Anforderungsschein für Laboratoriumsuntersuchungen bei Laborgemeinschaften”: muster10a.pdf
Natuerlich koennen Sie die Namen aller existierender Formularfelder auslesen:
Dim names() As String = pform.FormFieldNames
Sie koennen auch ganz einfach Werte in diese Felder schreiben:
pform.WriteData2FormField(“4221_Kurativ”, “1”)
pform.WriteData2FormField(“0000_Titel_Vorname_Namenszusatz_Vorsatzwort”, “John”)
pform.WriteData2FormField(“Name”, “Doe”)
Im Gesundheitswesen muessen zusaetzlich zu den PDF Formfeldern auch einige Metadaten geschrieben werden Aber auch das geht sehr einfach:
pform.WriteData2XMPField(“Anzahl_Zeichen_Titel”, “22”)
Um das fertige PDF Formular zu speichern rufen Sie dann einfach folgende Funktion auf: pform.Save
Die resultierenden PDFs sehen dann folgendermassen aus: muster10a_filled.pdf muster10_filled.pdf
Alternativ zur Save Funktion gibt es die Funktion SignAndSave. Mit der Funktion koennen Sie das Formular gleich digital Signieren.
‘ Specify CertificateSerialNumber or Sign_x509 to define signing certificate to skip signature dialog. If you have signed before you can assign value of Used_x509 to Sign_x509
Dim CertificateSerialNumber As String = “”
Dim Sign_x509 As System.Security.Cryptography.X509Certificates.X509Certificate2 = Nothing
Dim Output_PDF As String = “d:\pdf2\new.pdf”
Dim DoOverWrite As Boolean = True
Dim SignPage As Integer = 1
Dim SignReason As String = “I have seen this document”
Dim SignContact As String = “info@aloaha.com”
Dim SignLocation As String = “Pembroke”
Dim HashType As AloPDFLib.AloPDFLib.AloahaPDFNewLib.HashTypes = AloPDFLib.AloPDFLib.AloahaPDFNewLib.HashTypes.SHA256
Dim SignatureImagePath As String = “d:\images\signature.jpg”
‘ Lassen Sie die 4 Werte auf 0 wenn Sie moechten das Aloaha ein existierendes Unterschriftenfeld zur Signatur benutzt.
Dim SignatureLeft As Double = 0
Dim SignatureTop As Double = 0
Dim SignatureWidth As Double = 0
Dim SignatureHeight As Double = 0
Dim SizeIsPercent As Boolean = False
Dim DoCAdES As Boolean = True
Dim IncludeCRL As Boolean = True
Dim TSA_URL As String = “”
Dim ForceSettingsGUI As Boolean = True
Dim StopIfCertNotFound As Boolean = False
Dim Used_x509 As System.Security.Cryptography.X509Certificates.X509Certificate2 = Nothing
Dim LastSignError As String = “”
Call pform.SignAndSave(CertificateSerialNumber, Output_PDF, DoOverWrite, SignPage, _
SignReason, SignContact, SignLocation, HashType, SignatureImagePath, _
SignatureLeft, SignatureTop, SignatureWidth, SignatureHeight, “”, TSA_URL, _
30000, SizeIsPercent, ForceSettingsGUI, StopIfCertNotFound, Sign_x509, _
LastSignError, DoCAdES, IncludeCRL, “”, “”, “”, False, True, Used_x509)
Und hier das fertige PDF: muster10_signed.pdf