Digitales Signieren eines PDF-Dokuments

This article was translated from English: Does it need improvement?
Translated
View the article in English

Wichtige Disambiguierung: Signieren einer PDF-Datei

Entwickler fragen häufig, wie sie mit IronPDF programmatisch eine Signatur zu einem PDF-Dokument hinzufügen können. Im Allgemeinen bedeutet Signieren für verschiedene Entwickler unterschiedliche Dinge:

  1. Zum digitalen Signieren eines PDF-Dokuments mit einem Zertifikat, um sicherzustellen, dass es nicht manipuliert werden kann.
  2. So fügen Sie einer vorhandenen PDF-Datei eine grafische handschriftliche Unterschrift aus einer Bilddatei hinzu.
  3. So stempeln Sie das Bild eines Zertifikats in eine PDF-Datei.
  4. So fügen Sie ein Unterschriftsformularfeld zu einer PDF-Datei hinzu, die von einigen Betrachtern zum Unterschreiben aufgefordert werden kann.

    C# NuGet-Bibliothek für PDF

    Installieren mit NuGet

    Install-Package IronPdf
    oder
    Java PDF JAR

    Herunterladen DLL

    DLL herunterladen

    Manuelle Installation in Ihr Projekt

    C# NuGet-Bibliothek für PDF

    Installieren mit NuGet

    Install-Package IronPdf
    oder
    Java PDF JAR

    Herunterladen DLL

    DLL herunterladen

    Manuelle Installation in Ihr Projekt

    Fangen Sie noch heute an, IronPDF in Ihrem Projekt mit einer kostenlosen Testversion zu verwenden.

    Erster Schritt:
    green arrow pointer

    Schau dir an IronPDF an Nuget Für schnelle Installation und Bereitstellung. Mit über 8 Millionen Downloads verwandelt es PDF mit C#.

    C# NuGet-Bibliothek für PDF nuget.org/packages/IronPdf/
    Install-Package IronPdf

    Erwägen Sie die Installation der IronPDF DLL direkt. Laden Sie es herunter und installieren Sie es manuell für Ihr Projekt oder die GAC-Form: IronPdf.zip

    Manuelle Installation in Ihr Projekt

    DLL herunterladen

Signieren einer PDF-Datei mit einem digitalen Zertifikat

IronPDF unterstützt viele Möglichkeiten, ein PDF mit einem digitalen Signaturzertifikat der Formate .pfx und .p12 zu signieren. In diesem Leitfaden werden Sie durch alle drei Hauptmethoden geführt, die zum digitalen Signieren von PDF-Dokumenten verwendet werden:

Methode der Unterzeichnung Beschreibung
Unterschrift Unterschrift a PDF with a PdfUnterschriftature object
UnterschriftWithFile Unterschrift PDF with a digital signature certificate(.pfx or .p12) on disk
UnterschriftWithStore Unterschrifts the PDF with digital signature extracted from your computer's signature storage. Basierend auf einer Daumenabdruck-ID
### Unterstützte Zertifikatsdateien für digitale Signaturen Wir entsprechen offiziell dem `X509Certificate2` Standard und unterstützen `.pfx` und `.p12` Signaturen. Wenn Ihre Signatur nicht direkt in IronPDFs Signiermethoden angewendet werden kann, müssen Sie ein "X509Certificate2"-Zertifikat mit den Anweisungen erstellen, die Sie unter[Microsoft-Dokumentation](https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography.x509certificates.x509certificate2.-ctor). ### Signieren: PdfSignatur aus X509Certificate2 erstellen Die Signiermethoden von IronPDF akzeptieren das Objekt "X509Certificate2" mit den **X509KeyStorageFlags**, die auf **Exportable** gesetzt sind.
Bitte beachten Sie
- IronPDF unterstützt nur **X509KeyStorageFlags.Exportable**. Bei einigen Zertifikaten sind die KeyStorageFlags standardmäßig auf Exportierbar gesetzt. Der Versuch, andere KeyStorageFlags zu verwenden, führt zur Ausnahme => Internal.Cryptography.CryptoThrowHelper.WindowsCryptographicException: 'Die angeforderte Operation wird nicht unterstützt
```cs :path=/static-assets/pdf/content-code-examples/how-to/signing-X509Certificate2-with-privatekey.cs ``` ### Unterschreiben: PdfSignature detaillierte Informationen hinzufügen Während der Instanziierung von PdfSignature oder nach der Instanziierung können dem PdfSignature-Objekt nützliche Informationen hinzugefügt werden, wie z. B. Datum, unterzeichnender Kontakt, Ort, Grund für die Unterzeichnung, Zeitstempel und das Hinzufügen eines Bildes als visuelles Erscheinungsbild im PDF-Dokument.
Tipps
Unterstützt Zeitstempel-Server, die SHA256 und SHA512 benötigen
```cs :path=/static-assets/pdf/content-code-examples/how-to/signing-add-granular-information.cs ``` ### Demonstration
Anzeige der Unterzeichnerdetails
Möglicherweise sehen Sie ein Ausrufezeichen oder ein Warnzeichen anstelle eines Häkchens. Dies geschieht, weil Adobe die Authentizität und Integrität des Dokuments nicht bestätigen kann, da das Zertifikat nicht vorhanden ist. Um das Häkchen zu erhalten, fügen Sie bitte das Zertifikat zu Adobe hinzu und öffnen Sie das Dokument erneut. ### Verschiedene Möglichkeiten zum Hinzufügen von Bildern Ein Bild kann auf viele Arten einbezogen werden: - Die Eigenschaft **SignatureImage** auf ein neues PdfSignatureImage-Objekt setzen. - Verwenden Sie die Methode "LoadSignatureImageFromFile", um ein Bild aus einer Datei zu laden. Die LoadSignatureImageFromFile-Methode unterstützt verschiedene Bildformate. - Verwenden Sie die Methode "LoadSignatureImageFromStream", um ein Bild aus einem Stream zu laden. Der Bildstrom kann aus einer anderen Bibliothek erzeugt werden, sofern er das Format TGA, PBM, TIFF, BMP, GIF, PNG, JPEG oder Webp hat. ```cs :path=/static-assets/pdf/content-code-examples/how-to/signing-add-image.cs ``` ### Unterschriftsberechtigungen Sie können ausdrücklich Bedingungen für die Gültigkeit Ihres Zertifikats angeben. Wenn Sie möchten, dass Ihre Unterschrift bei einer Änderung ungültig wird, oder nur Änderungen an Formularfeldern zulassen möchten, usw. In der folgenden Tabelle finden Sie die Optionen:
PdfDocument.SignaturePermissions Definition
NoChangesAllowed Es sind keine Änderungen erlaubt
Zusätzliche Unterschriften und Formularausfüllung erlaubt Ändern von Formularfeldwerten ist erlaubt
Zusätzliches Unterschreiben, Formularausfüllen und Anmerkungen erlaubt Das Ändern von Formularfeldwerten und die Änderung von Anmerkungen sind erlaubt
Dieser Parameter ist optional und wenn er nicht gesetzt wird, wird eine Signatur angewendet, die eine bestimmte Revision beglaubigt und nicht ungültig gemacht werden kann. ### Speichern und Signieren einer PDF-Revisionswiederholung Im folgenden Beispiel öffnen wir eine PDF-Datei, nehmen verschiedene Bearbeitungen vor und signieren sie, bevor wir sie speichern. Für Unterschriftsberechtigungen werden wir nur das Ausfüllen von Formularen als zukünftige Bearbeitung zulassen, andernfalls wird die Unterschrift bei jeder anderen Bearbeitung ungültig. Dann rufen wir `SaveAsRevision` auf, um die Revision in der Historie zu speichern und dann unser neues Dokument auf der Festplatte zu speichern. ```cs :path=/static-assets/pdf/content-code-examples/how-to/signing-revision.cs ``` ### Verständnis des inkrementellen Speicherns für Signaturen Während einige Viewer wie der Chrome-Browser nur eine Version anzeigen, können PDF-Dateien frühere Versionen des Dokuments speichern, ähnlich wie ein Git-Commit-Verlauf. Sie sehen dies in fortgeschritteneren PDF-Viewern wie Adobe Acrobat. Beim Umgang mit PDF-Signaturen ist es wichtig, dies zu wissen, da sich das Signieren einer PDF-Datei auf die aktuelle Iteration der Datei bezieht. Ihre PDF-Datei enthält möglicherweise Signaturen für ältere Versionen oder einige nicht signierte Versionen. Wir können uns ein Beispiel wie folgt vorstellen:
PDF-Dokument Iteration Zertifikat A Zertifikat B Zertifikat C Zertifikat D
0 (erste Speicherung)
1
2
3
(nur für die Bearbeitung von Formularfeldern)

(nur für die Bearbeitung von Formularfeldern)
4 (nur bearbeitete Formularfelder)
5
(keine weiteren Bearbeitungen erlaubt)

(keine weiteren Bearbeitungen erlaubt)

(keine weiteren Bearbeitungen erlaubt)
Oben haben wir ein Dokument, das 6 verschiedene Iterationen durchlaufen hat. Dieses Dokument wird möglicherweise in verschiedenen Abteilungen eines Unternehmens zur Genehmigung weitergereicht, bis es in Iteration 3 fertiggestellt wird. In dieser Iteration haben sowohl Person A als auch Person B das Dokument mit der Berechtigung "Nur Formularfeldbearbeitungen" unterzeichnet. Das bedeutet, dass das Ausfüllen von Formularfeldern im PDF-Dokument erlaubt ist, aber jede andere Änderung des Dokuments macht ihre Unterschrift ungültig. Im obigen Beispiel können wir davon ausgehen, dass Person C das Formular ausgefüllt und an Person A, B und D zurückgeschickt hat, die alle das Dokument ein letztes Mal mit der Berechtigung "Keine Änderungen erlaubt" unterzeichnet haben. Da in diesem Dokument keine ungültig machenden Maßnahmen ergriffen wurden, erhalten wir bei der Ausführung der Signaturmethode von IronPDF **true**. ### Zurück zu einer alten Revision Um zu einer früheren Version einer PDF-Datei zurückzukehren, können Sie die Methode `GetRevision` verwenden. Dadurch werden alle seit dieser Revision vorgenommenen Änderungen, einschließlich neuerer Signaturen, vergessen. Verwenden Sie dazu: ```cs :path=/static-assets/pdf/content-code-examples/how-to/signing-revert-revision.cs ``` ### Signaturen entfernen IronPDF verfügt über eine Methode `RemoveSignatures`, die jede Signatur jeder Revision eines PDF-Dokuments entfernt. Die Verwendung ist wie folgt: ```cs :path=/static-assets/pdf/content-code-examples/how-to/signing-remove-signature.cs ``` ### Alle Signaturen in einer PDF-Datei prüfen Der Aufruf der Methode verify signatures für ein PDF-Dokument prüft alle Signaturen aus allen Dokument-Iterationen und stellt sicher, dass sie alle noch gültig sind. Wenn sie alle gültig sind, wird ein "bool" von "wahr" zurückgegeben. ```cs :path=/static-assets/pdf/content-code-examples/how-to/signing-verify-signatures.cs ``` ## Eine Signatur auf eine PDF-Datei stempeln Zunächst werde ich mit einer PDF-Datei beginnen, die ich unterschreiben möchte. Ich werde diese Beispielrechnung verwenden: Wir werden eine handschriftliche Unterschrift in Form eines "png"-Bildes auf unsere PDF-Datei aufbringen. Dies kann eine handschriftliche Unterschrift oder das Bild sein, das bei der Erstellung einer Zertifikatsdatei verwendet wurde. Dies ist die Beispielsignatur, die wir verwenden werden: ### Code Damit wird der folgende Code verwendet, um die handschriftliche Unterschrift als Wasserzeichen in die PDF-Datei zu stempeln: ```cs :path=/static-assets/pdf/content-code-examples/how-to/signing-handwritten.cs ``` ### Ausgabe Ergebnis Nachdem dieser Code ausgeführt wurde, haben wir diese Ausgabedatei, die unten rechts unsere Signatur trägt: ## Hinzufügen eines unsignierten Unterschriftsfeldes zu einer PDF-Datei Dies wird derzeit noch nicht unterstützt. Weitere Informationen über IronPDF und die unterstützten Formulare finden Sie in der[Programmgesteuertes Ausfüllen von PDF-Formularen in C#](/blog/using-ironpdf/programmatically-fill-pdf-form-csharp/) artikel.