Wie man PDF-Dateien in C# mit IronPDF signiert | IronPDF Tutorial

A Developer's Guide to Digitally Signing PDFs with C

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

Dieses umfassende Handbuch zeigt C#-Entwicklern, wie sie PDFs mit IronPDF digital signieren können. Es behandelt zertifikatsbasierte Signaturen, visuelle Stempel und interaktive Formularfelder, um die Authentizität und Sicherheit von Dokumenten zu gewährleisten.

Das Hinzufügen einer Signatur zu einem PDF-Dokument ist in vielen Anwendungen eine gängige Anforderung, aber "Signieren" kann unterschiedliche Bedeutungen haben. Für einige geht es darum, eine manipulationssichere digitale Signatur mit einem Sicherheitszertifikat anzuwenden. Für andere könnte es darum gehen, ein visuelles, handschriftliches Signaturbild auf ein Dokument zu stempeln oder ein interaktives Formularfeld hinzuzufügen, damit Benutzer elektronisch unterschreiben können.

Dieser Leitfaden bietet eine umfassende Anleitung für C#-Entwickler, um all diese Aufgaben mit der IronPDF for .NET-Bibliothek umzusetzen. Wir behandeln alles von der Anwendung einer sicheren digitalen Signatur X509Certificate2 bis hin zum Stempeln grafischer Signaturen und der Erstellung interaktiver Signaturfelder, um sicherzustellen, dass Ihre PDF-Dokumente authentisch, sicher und professionell sind.

Schnellstart: Müheloses digitales Signieren von PDFs mit IronPDF

Beginnen Sie schnell mit IronPDF, um Ihre PDF-Dokumente mit einem einfachen, geradlinigen Prozess digital zu signieren. Dieses Beispiel zeigt, wie man ein .pfx-Zertifikat verwendet, um eine PDF-Datei zu authentifizieren und zu signieren, um die Dokumentintegrität und Authentizität sicherzustellen. Befolgen Sie diese Schritte, um digitale Signaturen nahtlos in Ihre Anwendung zu integrieren.

  1. Installieren Sie IronPDF mit NuGet Package Manager

    PM > Install-Package IronPdf
  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    new IronPdf.Signing.PdfSignature("certificate.pfx", "password").SignPdfFile("input.pdf");
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute, IronPDF in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion

    arrow pointer

Wie wende ich eine digitale Signatur mit einem Zertifikat auf ein PDF an?

Sie können eine digitale Signatur auf ein PDF-Dokument anwenden, indem Sie eine digitale Zertifikatsdatei (z. B. .pfx oder .p12) verwenden, um die Authentizität und Integrität des Dokuments zu gewährleisten. Dieser Prozess gewährleistet, dass das Dokument seit der Unterzeichnung nicht verändert wurde. Einen vollständigen Überblick über die Möglichkeiten des digitalen Signierens finden Sie in unserem umfassenden Leitfaden für digitale Signaturen.

IronPDF bietet eine einfache API für diesen Zweck und unterstützt mehrere Möglichkeiten, eine digitale Signatur anzuwenden. Der Kern dieser Funktionalität dreht sich um die Klasse PdfSignature, die das Zertifikat und alle zugehörigen Metadaten für die Signatur kapselt.

Unterzeichnungsmethode Beschreibung
`Zeichen` Signiert eine PDF-Datei mit einem **`PdfSignature`-Objekt**, das Sie erstellen und konfigurieren.
`SignWithFile` Signiert eine PDF-Datei mit einer digitalen Signaturzertifikatsdatei (`.pfx` oder `.p12`), die sich auf der Festplatte befindet.
`SignWithStore` Signiert eine PDF-Datei mit einer digitalen Signatur aus dem Zertifikatspeicher Ihres Computers, die durch ihre **Daumenabdruck-ID** identifiziert wird.

Verwendung eines X509Certificate2 Objekts

Für maximale Kontrolle können Sie aus Ihrer Zertifikatsdatei ein X509Certificate2-Objekt erstellen. IronPDF ist vollständig mit dem X509Certificate2-Standard kompatibel und bietet somit eine robuste und sichere Methode zur Implementierung digitaler Signaturen. Stellen Sie beim Erstellen des Zertifikatsobjekts sicher, dass X509KeyStorageFlags auf Exportable gesetzt wird, da dies von den zugrunde liegenden kryptografischen APIs benötigt wird. Praktische Beispiele für digitale Signaturen finden Sie in unserem Code-Repository.

Install-Package IronPdf
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;

// Create a new PDF from an HTML string for demonstration.
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Signed Document</h1><p>This document has been digitally signed.</p>");

// Load the certificate from a .pfx file with its password.
// The X509KeyStorageFlags.Exportable flag is crucial for allowing the private key to be used in the signing process.
var cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);

// Create a PdfSignature object using the loaded certificate.
var signature = new PdfSignature(cert);

// Apply the signature to the PDF document.
pdf.Sign(signature);

// Save the securely signed PDF document.
pdf.SaveAs("Signed.pdf");
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;

// Create a new PDF from an HTML string for demonstration.
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Signed Document</h1><p>This document has been digitally signed.</p>");

// Load the certificate from a .pfx file with its password.
// The X509KeyStorageFlags.Exportable flag is crucial for allowing the private key to be used in the signing process.
var cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);

// Create a PdfSignature object using the loaded certificate.
var signature = new PdfSignature(cert);

// Apply the signature to the PDF document.
pdf.Sign(signature);

// Save the securely signed PDF document.
pdf.SaveAs("Signed.pdf");
$vbLabelText   $csharpLabel

Der oben stehende Code generiert zuerst ein einfaches PDF. Anschließend wird eine .pfx Zertifikatsdatei in ein X509Certificate2 Objekt geladen. Dieses Objekt, das die digitale Identität repräsentiert, wird an den PdfSignature Konstruktor übergeben. Schließlich wendet die Methode pdf.Sign diese Signatur auf das Dokument an, bevor es gespeichert wird. For more information on the X509Certificate2 class, you can refer to the official Microsoft documentation.

Zusätzliche Details zu einer digitalen Signatur hinzufügen

Eine digitale Signatur kann mehr als nur das Zertifikat enthalten; Sie können reichhaltige Metadaten einbetten, um Kontext zur Signatur bereitzustellen. Dazu gehören der Ort der Signatur, der Grund, die Kontaktinformationen und ein sicherer Zeitstempel von einer vertrauenswürdigen Behörde. Sie können auch Metadaten einstellen und bearbeiten für zusätzliche Dokumenteigenschaften.

Das Hinzufügen dieser Details verbessert die Prüfspur des Dokuments und liefert Prüfern wertvolle Informationen. IronPDF unterstützt auch Zeitstempelserver, die moderne SHA256- und SHA512-Hash-Algorithmen verwenden.

using IronPdf;
using IronPdf.Signing;
using IronSoftware.Drawing;
using System;

// Load an existing PDF document to be signed.
var pdf = PdfDocument.FromFile("invoice.pdf");

// Create a PdfSignature object directly from the certificate file and password.
var signature = new PdfSignature("IronSoftware.pfx", "123456");

// Add detailed metadata to the signature for a comprehensive audit trail.
// These properties enhance the signature's credibility and provide context
signature.SignatureDate = DateTime.Now;
signature.SigningContact = "legal@ironsoftware.com";
signature.SigningLocation = "Chicago, USA";
signature.SigningReason = "Contractual Agreement";

// Add a secure timestamp from a trusted Time Stamp Authority (TSA).
// This provides cryptographic proof of the signing time.
signature.TimeStampUrl = new Uri("[http://timestamp.digicert.com](http://timestamp.digicert.com)");
signature.TimestampHashAlgorithm = TimestampHashAlgorithms.SHA256;

// Apply a visual appearance to the signature. (More on this in the next section)
signature.SignatureImage = new PdfSignatureImage("assets/visual-signature.png", 0, new Rectangle(350, 750, 200, 100));

// Sign the PDF document with the configured signature object.
pdf.Sign(signature);

// Save the final, signed PDF document.
pdf.SaveAs("DetailedSignature.pdf");
using IronPdf;
using IronPdf.Signing;
using IronSoftware.Drawing;
using System;

// Load an existing PDF document to be signed.
var pdf = PdfDocument.FromFile("invoice.pdf");

// Create a PdfSignature object directly from the certificate file and password.
var signature = new PdfSignature("IronSoftware.pfx", "123456");

// Add detailed metadata to the signature for a comprehensive audit trail.
// These properties enhance the signature's credibility and provide context
signature.SignatureDate = DateTime.Now;
signature.SigningContact = "legal@ironsoftware.com";
signature.SigningLocation = "Chicago, USA";
signature.SigningReason = "Contractual Agreement";

// Add a secure timestamp from a trusted Time Stamp Authority (TSA).
// This provides cryptographic proof of the signing time.
signature.TimeStampUrl = new Uri("[http://timestamp.digicert.com](http://timestamp.digicert.com)");
signature.TimestampHashAlgorithm = TimestampHashAlgorithms.SHA256;

// Apply a visual appearance to the signature. (More on this in the next section)
signature.SignatureImage = new PdfSignatureImage("assets/visual-signature.png", 0, new Rectangle(350, 750, 200, 100));

// Sign the PDF document with the configured signature object.
pdf.Sign(signature);

// Save the final, signed PDF document.
pdf.SaveAs("DetailedSignature.pdf");
$vbLabelText   $csharpLabel

Sie bemerken möglicherweise ein Warnsymbol in einigen PDF-Viewern, wenn das Signaturzertifikat nicht im vertrauenswürdigen Speicher des Systems vorhanden ist. Um ein grünes Häkchen zu bekommen, muss das Zertifikat zu den vertrauenswürdigen Identitäten des Viewers hinzugefügt werden.

Wie füge ich eine visuelle Darstellung zu einer digitalen Signatur hinzu?

Während eine digitale Signatur kryptografisch in das PDF eingebettet ist, ist es oft nützlich, eine visuelle Darstellung auf der Seite zu haben. Dies kann ein Firmenlogo, ein handschriftliches Signaturbild oder andere Grafiken sein. IronPDF macht es einfach, einem PdfSignature Objekt ein Bild hinzuzufügen.

Sie können ein Bild von einer Datei oder einem Stream laden und es präzise auf jeder Seite des PDFs positionieren. Zu den unterstützten Bildformaten gehören PNG, JPEG, GIF, BMP, TIFF und WebP. Diese Technik ist vergleichbar mit dem Stempeln von Text und Bildern in PDF-Dokumenten.

using IronPdf.Signing;
using IronSoftware.Drawing;

// This example demonstrates various ways to add a visual image to a PDF signature.

// Create a PdfSignature object.
var signature = new PdfSignature("IronSoftware.pfx", "123456");

// Define the position and size for the signature image on the first page (index 0).
// Rectangle parameters: x position, y position, width, height
var signatureRectangle = new Rectangle(350, 750, 200, 100);

// Option 1: Set the SignatureImage property directly.
// This is the most straightforward approach
signature.SignatureImage = new PdfSignatureImage("assets/visual-signature.png", 0, signatureRectangle);

// Option 2: Use the LoadSignatureImageFromFile method.
// This method provides the same functionality with a different syntax
signature.LoadSignatureImageFromFile("assets/visual-signature.png", 0, signatureRectangle);

// Option 3: Load an image from a stream. This is useful for images generated in memory.
// Perfect for scenarios where images are retrieved from databases or web services
AnyBitmap image = AnyBitmap.FromFile("assets/visual-signature.png");
using (var imageStream = image.ToStream())
{
    signature.LoadSignatureImageFromStream(imageStream, 0, signatureRectangle);
}

// After configuring the signature image, apply it to a PDF.
var pdf = PdfDocument.FromFile("invoice.pdf");
pdf.Sign(signature);
pdf.SaveAs("VisualSignature.pdf");
using IronPdf.Signing;
using IronSoftware.Drawing;

// This example demonstrates various ways to add a visual image to a PDF signature.

// Create a PdfSignature object.
var signature = new PdfSignature("IronSoftware.pfx", "123456");

// Define the position and size for the signature image on the first page (index 0).
// Rectangle parameters: x position, y position, width, height
var signatureRectangle = new Rectangle(350, 750, 200, 100);

// Option 1: Set the SignatureImage property directly.
// This is the most straightforward approach
signature.SignatureImage = new PdfSignatureImage("assets/visual-signature.png", 0, signatureRectangle);

// Option 2: Use the LoadSignatureImageFromFile method.
// This method provides the same functionality with a different syntax
signature.LoadSignatureImageFromFile("assets/visual-signature.png", 0, signatureRectangle);

// Option 3: Load an image from a stream. This is useful for images generated in memory.
// Perfect for scenarios where images are retrieved from databases or web services
AnyBitmap image = AnyBitmap.FromFile("assets/visual-signature.png");
using (var imageStream = image.ToStream())
{
    signature.LoadSignatureImageFromStream(imageStream, 0, signatureRectangle);
}

// After configuring the signature image, apply it to a PDF.
var pdf = PdfDocument.FromFile("invoice.pdf");
pdf.Sign(signature);
pdf.SaveAs("VisualSignature.pdf");
$vbLabelText   $csharpLabel

Dieser Code zeigt drei gleichwertige Möglichkeiten, eine visuelle Komponente zu einer digitalen Signatur hinzuzufügen. Egal, ob Sie ein Bild auf der Festplatte oder im Speicher haben, Sie können es einfach auf das PDF als Teil des Signaturprozesses stempeln. Dies schließt die Lücke zwischen unsichtbarer kryptografischer Sicherheit und sichtbarer Dokumentgenehmigung.

Wie kann ich die Dokumentberechtigungen nach der Signatur steuern?

Wenn Sie ein Dokument signieren, möchten Sie möglicherweise angeben, welche Änderungen, wenn überhaupt, danach erlaubt sind. Zum Beispiel möchten Sie das Dokument möglicherweise vollständig sperren oder nur Benutzern erlauben, Formulare auszufüllen. Mit IronPDF können Sie diese Berechtigungen mithilfe der Enumeration SignaturePermissions festlegen. Weitere Informationen zur Steuerung von Berechtigungen finden Sie in unserem Leitfaden zum Einstellen von PDF-Passwörtern und Berechtigungen.

Das Festlegen von Signaturberechtigungen ist ein wichtiger Teil der Verwaltung des Lebenszyklus eines Dokuments. Es stellt sicher, dass die Integrität des Dokuments nach Ihrer Signatur gewahrt bleibt. Wenn ein Benutzer eine nicht erlaubte Aktion durchführt, wird die Signatur ungültig.

`SignaturePermissions` Mitglied Definition
`NoChangesAllowed` Änderungen jeglicher Art sind nicht erlaubt. Das Dokument ist effektiv gesperrt.
`FormFillingAllowed` Es ist nur das Ausfüllen vorhandener Formularfelder und das Unterschreiben erlaubt.
`AnnotationsAndFormFillingAllowed` Ermöglicht das Ausfüllen von Formularen, das Unterschreiben und das Erstellen oder Ändern von Kommentaren.

Speichern und Signieren einer bestimmten PDF-Revision

PDFs können eine Historie von Änderungen speichern, ähnlich einem Versionskontrollsystem. Dies wird als inkrementelles Speichern bezeichnet. Wenn Sie ein PDF signieren, gilt die Signatur für eine bestimmte Revision des Dokuments. Dies ist entscheidend für Arbeitsabläufe, bei denen ein Dokument mehrere Genehmigungsstufen durchläuft. In unserem ausführlichen Leitfaden erfahren Sie mehr über die Verwaltung des PDF-Versionsverlaufs .

Im folgenden Beispiel laden wir ein PDF, machen Bearbeitungen und signieren dann die aktuelle Revision, während wir nur das Ausfüllen von Formularen als zukünftige Änderung erlauben. Wir verwenden SaveAsRevision, um den aktuellen Zustand in der Dokumentenhistorie zu speichern, bevor die Datei gesichert wird.

using IronPdf.Signing;

// Load a PDF file with change tracking enabled.
// This enables incremental save functionality for revision management
var pdf = PdfDocument.FromFile("annual_census.pdf", ChangeTrackingModes.EnableChangeTracking);

// Placeholder for edits: You might add text, fill forms, or add annotations here.
// For example: pdf.Annotations.Add(new TextAnnotation(...));
// Or: pdf.Form["fieldName"].Value = "New Value";

// Sign the current state of the document using SignWithFile for convenience.
// We set permissions to allow further signatures and form filling.
pdf.SignWithFile(
    "assets/IronSignature.p12", 
    "password", 
    SignaturePermissions.AdditionalSignaturesAndFormFillingAllowed);

// Save the current state as a distinct revision within the PDF's history.
// This creates a snapshot that can be referenced later
PdfDocument pdfWithRevision = pdf.SaveAsRevision();

// Save the final PDF with its full revision history to a new file.
pdfWithRevision.SaveAs("annual_census_signed.pdf");
using IronPdf.Signing;

// Load a PDF file with change tracking enabled.
// This enables incremental save functionality for revision management
var pdf = PdfDocument.FromFile("annual_census.pdf", ChangeTrackingModes.EnableChangeTracking);

// Placeholder for edits: You might add text, fill forms, or add annotations here.
// For example: pdf.Annotations.Add(new TextAnnotation(...));
// Or: pdf.Form["fieldName"].Value = "New Value";

// Sign the current state of the document using SignWithFile for convenience.
// We set permissions to allow further signatures and form filling.
pdf.SignWithFile(
    "assets/IronSignature.p12", 
    "password", 
    SignaturePermissions.AdditionalSignaturesAndFormFillingAllowed);

// Save the current state as a distinct revision within the PDF's history.
// This creates a snapshot that can be referenced later
PdfDocument pdfWithRevision = pdf.SaveAsRevision();

// Save the final PDF with its full revision history to a new file.
pdfWithRevision.SaveAs("annual_census_signed.pdf");
$vbLabelText   $csharpLabel

Das Verständnis inkrementeller Speicher ist der Schlüssel zu fortgeschrittenen PDF-Workflows. Während ein einfacher Viewer möglicherweise nur die neueste Version anzeigt, kann ein Tool wie Adobe Acrobat die gesamte Revisionsgeschichte zeigen und aufzeigen, wer welche Version signiert hat und welche Änderungen zwischen den Signaturen vorgenommen wurden. IronPDF gibt Ihnen die volle programmatische Kontrolle über diesen Prozess.

Für Unternehmen, die komplexe Dokumentenarbeitsabläufe verwalten, die hohe Sicherheit und Compliance erfordern, kann eine umfassende Lösung erforderlich sein. Iron Software bietet Iron Suite, die IronPDF zum Signieren und Bearbeiten sowie andere Bibliotheken für eine Vielzahl von Dokumentverarbeitungsaufgaben umfasst, erhältlich für eine einmalige Zahlung.

Wie kann ich Signaturen über Revisionen hinweg verwalten und verifizieren?

Ein PDF-Dokument kann über seine verschiedenen Revisionen hinweg mehrere Signaturen haben. IronPDF bietet Werkzeuge, um diese Historie effektiv zu verwalten.

  • Auf eine frühere Version zurücksetzen : Sie können ein Dokument mithilfe der Methode GetRevision auf einen früheren Zustand zurücksetzen. Dies verwirft alle Änderungen und Signaturen, die nach dieser Revision gemacht wurden.
  • Alle Signaturen prüfen : Die Methode VerifySignatures prüft die Gültigkeit aller Signaturen über alle Revisionen des Dokuments hinweg. Es wird true nur dann zurückgegeben, wenn jede Signatur gültig ist und keine unautorisierten Änderungen vorgenommen wurden.
  • Signaturen entfernen : Die Methode RemoveSignatures entfernt alle digitalen Signaturen aus jeder Revision des Dokuments und erstellt so eine saubere, unsignierte Version.
// Load a PDF with a complex signature history.
var pdf = PdfDocument.FromFile("multi_signed_report.pdf");

// Verify all signatures across all revisions.
// This ensures document integrity throughout its entire history
bool allSignaturesValid = pdf.VerifySignatures();
Console.WriteLine($"All signatures are valid: {allSignaturesValid}");

// Roll back to the first revision (index 0).
// Useful for reviewing the original document state
if (pdf.RevisionCount > 1)
{
    PdfDocument firstRevision = pdf.GetRevision(0);
    firstRevision.SaveAs("report_first_revision.pdf");
}

// Create a completely unsigned version of the document.
// This removes all digital signatures while preserving content
pdf.RemoveSignatures();
pdf.SaveAs("report_unsigned.pdf");
// Load a PDF with a complex signature history.
var pdf = PdfDocument.FromFile("multi_signed_report.pdf");

// Verify all signatures across all revisions.
// This ensures document integrity throughout its entire history
bool allSignaturesValid = pdf.VerifySignatures();
Console.WriteLine($"All signatures are valid: {allSignaturesValid}");

// Roll back to the first revision (index 0).
// Useful for reviewing the original document state
if (pdf.RevisionCount > 1)
{
    PdfDocument firstRevision = pdf.GetRevision(0);
    firstRevision.SaveAs("report_first_revision.pdf");
}

// Create a completely unsigned version of the document.
// This removes all digital signatures while preserving content
pdf.RemoveSignatures();
pdf.SaveAs("report_unsigned.pdf");
$vbLabelText   $csharpLabel

Wie stempelt man eine handschriftliche Signatur auf ein PDF?

Manchmal benötigt man nicht die kryptografische Sicherheit einer digitalen Signatur, sondern möchte einfach eine visuelle, elektronische Signatur, wie eine gescannte handschriftliche Signatur anwenden. Dies wird häufig als Stempeln bezeichnet. IronPDF kann dies mithilfe seiner Watermark- oder Stamp-Funktionen erreichen. Weitere Informationen zu erweiterten Wasserzeichenoptionen finden Sie in unserem Leitfaden für benutzerdefinierte Wasserzeichen .

Beginnen wir mit einer Beispielrechnung im PDF-Format und einem Bild einer handschriftlichen Unterschrift (.png).

Das ursprüngliche Rechnung-PDF vor dem Stempeln einer Signatur.

Hier ist das Signaturbild, das wir anwenden werden:

Handschriftliches Signaturbeispiel mit dem Schriftzug Ein Beispielbild einer handschriftlichen Signatur.

Der folgende Code verwendet die Eigenschaft Watermark, um dieses Bild in die untere rechte Ecke des PDFs einzufügen.

using IronPdf.Editing;

// Load the existing PDF document.
var pdf = PdfDocument.FromFile("invoice.pdf");

// Create an HtmlStamp containing our signature image.
// HtmlStamp allows us to position HTML content precisely on the page
var signatureStamp = new HtmlStamp("<img src='assets/signature.png'/>")
{
    // Configure the stamp's position and appearance.
    VerticalAlignment = VerticalAlignment.Bottom,
    HorizontalAlignment = HorizontalAlignment.Right,
    Margin = 10,  // Add some space from the edge.
    Opacity = 90  // Make it slightly transparent for a more authentic look.
};

// Apply the stamp to all pages of the PDF.
// You can also specify specific page numbers if needed
pdf.ApplyStamp(signatureStamp);

// Save the modified PDF document.
pdf.SaveAs("official_invoice.pdf");
using IronPdf.Editing;

// Load the existing PDF document.
var pdf = PdfDocument.FromFile("invoice.pdf");

// Create an HtmlStamp containing our signature image.
// HtmlStamp allows us to position HTML content precisely on the page
var signatureStamp = new HtmlStamp("<img src='assets/signature.png'/>")
{
    // Configure the stamp's position and appearance.
    VerticalAlignment = VerticalAlignment.Bottom,
    HorizontalAlignment = HorizontalAlignment.Right,
    Margin = 10,  // Add some space from the edge.
    Opacity = 90  // Make it slightly transparent for a more authentic look.
};

// Apply the stamp to all pages of the PDF.
// You can also specify specific page numbers if needed
pdf.ApplyStamp(signatureStamp);

// Save the modified PDF document.
pdf.SaveAs("official_invoice.pdf");
$vbLabelText   $csharpLabel

Wie sieht das Ergebnis der gestempelten PDF-Datei aus?

Nach Ausführung des Codes wird das Signaturbild auf das Dokument gestempelt, wodurch eine visuell signierte Rechnung erstellt wird.

Das endgültige PDF mit dem gestempelten handschriftlichen Signaturbild in der rechten unteren Ecke.

Wie füge ich ein interaktives Signaturfeld zu einem PDF hinzu?

Für Dokumente, die von einem Endbenutzer in einem PDF-Viewer wie Adobe Acrobat signiert werden müssen, können Sie ein interaktives Signaturformularfeld hinzufügen. Dies erstellt einen leeren, anklickbaren Bereich, der den Benutzer auffordert, seine eigene digitale Signatur anzubringen. Eine vollständige Anleitung zu PDF-Formularen finden Sie in unserem Tutorial zum Erstellen von PDF-Formularen .

Sie können ein SignatureFormField erstellen und es der Formularsammlung des PDFs hinzufügen. Sie haben genaue Kontrolle über Standort und Größe auf der Seite. Dies ist besonders nützlich für Dokumente, die mehrere Unterschriften erfordern, oder wenn Sie Unterschriften von externen Parteien einholen müssen.

using IronPdf.Forms;
using IronSoftware.Drawing;

// Create a new PDF to add the signature field to.
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Please Sign Below</h1>");

// Define the properties for the signature form field.
string fieldName = "ClientSignature";  // Unique identifier for the field
int pageIndex = 0;  // Add to the first page (zero-indexed)
var fieldRect = new Rectangle(50, 200, 300, 100);  // Position: (x, y), Size: (width, height)

// Create the SignatureFormField object.
// This creates an interactive field that users can click to sign
var signatureField = new SignatureFormField(fieldName, pageIndex, fieldRect);

// Add the signature field to the PDF's form.
pdf.Form.Add(signatureField);

// Save the PDF with the new interactive signature field.
pdf.SaveAs("interactive_signature.pdf");
using IronPdf.Forms;
using IronSoftware.Drawing;

// Create a new PDF to add the signature field to.
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Please Sign Below</h1>");

// Define the properties for the signature form field.
string fieldName = "ClientSignature";  // Unique identifier for the field
int pageIndex = 0;  // Add to the first page (zero-indexed)
var fieldRect = new Rectangle(50, 200, 300, 100);  // Position: (x, y), Size: (width, height)

// Create the SignatureFormField object.
// This creates an interactive field that users can click to sign
var signatureField = new SignatureFormField(fieldName, pageIndex, fieldRect);

// Add the signature field to the PDF's form.
pdf.Form.Add(signatureField);

// Save the PDF with the new interactive signature field.
pdf.SaveAs("interactive_signature.pdf");
$vbLabelText   $csharpLabel

Wenn ein Benutzer dieses PDF öffnet, sieht er ein anklickbares Feld, das es ihm ermöglicht, den Signaturprozess mit seiner eigenen digitalen ID abzuschließen. Sie können mehr über das Erstellen und Verwalten interaktiver Formulare in unserem How-To-Leitfaden zum Erstellen von PDF-Formularen erfahren.

PDF-Editor zeigt unsigniertes Signaturfeld mit der Aufforderung Ein ungesigniertes, interaktives Signaturfeld, das programmgesteuert zu einem PDF-Dokument hinzugefügt wurde.

Wie erhalte ich den Namen des Unterzeichners aus verifizierten Signaturen?

Um den allgemeinen Namen des Zertifikatsinhabers zu erhalten, der eine Signatur unterzeichnet hat, können wir die Klasse VerifiedSignature verwenden, um auf die Eigenschaft SignerName zuzugreifen. Unten finden Sie einen Code-Schnipsel, der zeigt, wie dies erreicht werden kann.

:path=/static-assets/pdf/content-code-examples/how-to/signing-find-signer-name.cs
using IronPdf;
using System;

// Import the Signed PDF report
var pdf = PdfDocument.FromFile("multi_signed_report.pdf");

// Using GetVerifiedSignatures() obtain a list of `VerifiedSignature` objects from the PDF
pdf.GetVerifiedSignatures().ForEach(signature =>
{
    // Print out the SignerName of each `VerifiedSignature` object
    Console.WriteLine($"SignatureName: {signature.SignerName}");
});
$vbLabelText   $csharpLabel

Nach dem Import der signierten PDF-Datei verwenden wir die Methode GetVerifiedSignatures, um eine Liste der VerifiedSignature Objekte innerhalb des Berichts abzurufen und SignerName für jede Signatur auszugeben.

Bitte beachten Sie, dass dieser Wert aus dem Subject Distinguished Name (SubjectDN) des Zertifikats extrahiert wird und null zurückgibt, wenn das CN-Feld nicht vorhanden ist.

Was sind die nächsten Schritte für die PDF-Signatur mit IronPDF?

Dieser Leitfaden hat die leistungsstarken und flexiblen PDF-Signaturfunktionen von IronPDF demonstriert. Ob Sie sichere digitale Signaturen mit detaillierten Metadaten anwenden, Dokumentrevisionen verwalten, visuelle Signaturen stempeln oder interaktive Formulare erstellen müssen - IronPDF bietet eine umfassende und entwicklerfreundliche API, um die Aufgabe zu erledigen.

Um weiter zu erkunden, können Sie die IronPDF-Bibliothek for .NET herunterladen und eine kostenlose Testlizenz erhalten, um alle Funktionen in Ihren Projekten zu testen. Für fortgeschrittenere Techniken zur Dokumentenmanipulation, wie das Hinzufügen von Anmerkungen und das Arbeiten mit Formularfeldern, konsultieren Sie unsere umfangreiche Dokumentation und unsere Tutorials.

Bereit zu sehen, was Sie sonst noch tun können? Sehen Sie sich unsere Tutorial-Seite hier an: PDFs signieren und sichern

Häufig gestellte Fragen

Wie kann ich eine PDF-Datei mit einem Zertifikat in C# digital signieren?

Mit IronPDF können Sie eine PDF-Datei in nur einer Codezeile mit der PdfSignature-Klasse digital signieren. Erstellen Sie einfach ein neues PdfSignature-Objekt mit Ihrer Zertifikatsdatei (.pfx oder .p12) und Ihrem Passwort und rufen Sie dann die Methode SignPdfFile() auf. Zum Beispiel: new IronPdf.Signing.PdfSignature("certificate.pfx", "password").SignPdfFile("input.pdf"). Dies wendet eine fälschungssichere digitale Signatur unter Verwendung Ihres X509Certificate2 an, um die Authentizität des Dokuments sicherzustellen.

Welche Arten von PDF-Signaturen werden unterstützt?

IronPDF unterstützt drei Haupttypen von PDF-Signaturen: 1) Digitale Signaturen unter Verwendung von X509Certificate2-Zertifikaten zur Authentifizierung und zum Schutz vor Manipulationen, 2) Visuelle Signaturstempel, die Dokumente mit grafischen oder handschriftlichen Unterschriftsbildern versehen, und 3) Interaktive Unterschriftsfelder, mit denen Benutzer PDFs elektronisch unterschreiben können. Jeder Typ dient unterschiedlichen Zwecken im Hinblick auf die Dokumentensicherheit und Workflow-Anforderungen.

Welche Zertifikatsformate können für das digitale Signieren verwendet werden?

IronPDF unterstützt gängige digitale Zertifikatsformate wie .pfx (Personal Information Exchange) und .p12-Dateien. Diese Zertifikatsdateien enthalten sowohl den öffentlichen Schlüssel als auch den privaten Schlüssel, die für die digitale Unterzeichnung benötigt werden. Die PdfSignature-Klasse in IronPDF kann mit jedem X509Certificate2-Objekt arbeiten und bietet somit Flexibilität beim Laden und Verwalten Ihrer Signierzertifikate.

Kann ich meiner digitalen Signatur eine visuelle Darstellung hinzufügen?

Ja, IronPDF ermöglicht es Ihnen, visuelle Elemente zu Ihren digitalen Signaturen hinzuzufügen. Sie können neben der kryptografischen Signatur eine grafische Darstellung wie ein handschriftliches Unterschriftenbild, ein Firmenlogo oder einen benutzerdefinierten Stempel einfügen. Auf diese Weise wird die Sicherheit digitaler Zertifikate mit einer visuellen Bestätigung kombiniert, so dass signierte Dokumente sowohl sicher als auch professionell präsentiert werden können.

Wie erstelle ich ein interaktives Unterschriftsfeld, mit dem Benutzer elektronisch unterschreiben können?

IronPDF ermöglicht es Ihnen, PDF-Dokumenten interaktive Unterschriftsfelder hinzuzufügen. Diese Felder ermöglichen es den Benutzern, Dokumente elektronisch zu unterschreiben, indem sie darauf klicken und ihre Unterschrift zeichnen oder ein Unterschriftsbild hochladen. Diese Funktion ist ideal für die Erstellung von Dokumenten, die eine Unterschriftensammlung erfordern, wie z. B. Verträge oder Formulare, die von mehreren Parteien unterzeichnet werden müssen.

Stellt das Signieren einer PDF-Datei die Integrität des Dokuments sicher?

Ja, wenn Sie eine PDF-Datei mit IronPDF mit einem X509-Zertifikat2 digital signieren, wird ein fälschungssicheres Siegel erstellt, das die Integrität des Dokuments gewährleistet. Die digitale Signatur garantiert, dass das Dokument seit der Unterzeichnung nicht mehr verändert wurde. Jegliche Änderungen an der PDF-Datei nach dem Signieren machen die Signatur ungültig und warnen die Empfänger, dass das Dokument möglicherweise beschädigt wurde.

Jacob Mellor, Chief Technology Officer @ Team Iron
Chief Technology Officer

Jacob Mellor ist Chief Technology Officer bei Iron Software und ein visionärer Ingenieur, der Pionierarbeit in der C# PDF-Technologie leistet. Als der ursprüngliche Entwickler hinter der Kern-Codebasis von Iron Software hat er die Produktarchitektur des Unternehmens seit seiner Gründung geprägt und es zusammen mit CEO ...

Weiterlesen
Rezensiert von
Jeff Fritz
Jeffrey T. Fritz
Principal Program Manager - .NET Community Team
Jeff ist außerdem Principal Program Manager für das .NET- und Visual Studio-Team. Er ist der ausführende Produzent der .NET Conf Virtual Conference Series und moderiert ‚Fritz and Friends‘, einen Livestream für Entwickler, der zweimal wöchentlich ausgestrahlt wird. Dort spricht er über Technik und schreibt gemeinsam mit den Zuschauern Code. Jeff schreibt Workshops, Präsentationen und plant Inhalte für die größten Microsoft-Entwicklerveranstaltungen, einschließlich Microsoft Build, Microsoft Ignite, .NET Conf und dem Microsoft MVP Summit.
Bereit anzufangen?
Nuget Downloads 17,803,474 | Version: 2026.3 gerade veröffentlicht
Still Scrolling Icon

Scrollst du immer noch?

Sie brauchen schnell einen Beweis? PM > Install-Package IronPdf
Führen Sie eine Probe aus Sehen Sie zu, wie Ihr HTML-Code in eine PDF-Datei umgewandelt wird.