A Developer's Guide to Digitally Signing PDFs with C
Ten obszerny przewodnik pokazuje programistom C#, jak cyfrowo podpisywać PDF-y za pomocą IronPDF, obejmując podpisy oparte na certyfikatach, wizualne stemple i interaktywne pola formularzy, aby zapewnić autentyczność i bezpieczeństwo dokumentów.
Dodanie podpisu do dokumentu PDF to często wymóg w wielu aplikacjach, ale "podpisywanie" może znaczyć różne rzeczy. Dla niektórych to kwestia stosowania niezmiennego podpisu cyfrowego za pomocą certyfikatu zabezpieczeń. Dla innych może to być stemplowanie wizualnego obrazu podpisu odręcznego na dokumencie lub dodanie interaktywnego pola formularza do elektronicznego podpisania przez użytkowników.
Ten przewodnik zapewnia szczegółowy przegląd dla programistów C#, jak wykonać wszystkie te zadania, używając biblioteki IronPDF for .NET. Omówimy wszystko, od zastosowania bezpiecznego podpisu cyfrowego X509Certificate2 po stemplowanie podpisów graficznych i tworzenie interaktywnych pól podpisu, zapewniając, że Twoje dokumenty PDF są autentyczne, bezpieczne i profesjonalne.
Szybki start: Cyfrowo podpisz PDF za pomocą IronPDF
Szybko rozpocznij pracę z IronPDF, aby cyfrowo podpisywać swoje dokumenty PDF za pomocą prostej, bezpośredniej procedury. Ten przykład pokazuje, jak użyć certyfikatu .pfx do uwierzytelnienia i podpisania pliku PDF, zapewniając integralność i autentyczność dokumentu. Postępuj zgodnie z tymi krokami, aby płynnie zintegrować cyfrowe podpisywanie w swojej aplikacji.
-
Install IronPDF with NuGet Package Manager
-
Skopiuj i uruchom ten fragment kodu.
new IronPdf.Signing.PdfSignature("certificate.pfx", "password").SignPdfFile("input.pdf"); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną
Minimalny proces (5 kroków)
- Zainstaluj bibliotekę IronPDF for .NET.
- Zastosuj podpis cyfrowy za pomocą obiektu
X509Certificate2. - Dodaj wizualny obraz, aby przedstawić podpis cyfrowy.
- Stemplem graficznym lub odręcznym podpisem na pliku PDF.
- Dodaj interaktywne pole formularza podpisu do elektronicznego podpisania.
Jak zastosować podpis cyfrowy do PDF za pomocą certyfikatu?
Możesz zastosować podpis cyfrowy do dokumentu PDF, używając pliku certyfikatu cyfrowego (takiego jak .pfx lub .p12), aby zagwarantować autentyczność i integralność dokumentu. Ten proces zapewnia, że dokument nie został zmieniony od momentu jego podpisania. Dla pełnego przeglądu możliwości cyfrowego podpisywania, zapoznaj się z naszym szczegółowym przewodnikiem po podpisach cyfrowych.
IronPDF zapewnia prosty interfejs API do tego celu, wspierając wiele sposobów zastosowania podpisu cyfrowego. Rdzeniem tej funkcjonalności jest klasa PdfSignature, która kapsułkuje certyfikat i wszystkie powiązane metadane dla podpisu.
| Metoda podpisywania | Opis |
|---|---|
Sign |
Podpisuje plik PDF za pomocą PdfSignature obiektu, który tworzysz i konfigurujesz. |
SignWithFile |
Podpisuje PDF za pomocą pliku certyfikatu podpisu cyfrowego (.pfx lub .p12) zlokalizowanego na dysku. |
SignWithStore |
Podpisuje PDF za pomocą podpisu cyfrowego z przechowalni certyfikatów komputera, zidentyfikowanego przez ID odciskiem palca. |
Używanie obiektu X509Certificate2
Aby uzyskać maksymalną kontrolę, możesz stworzyć obiekt X509Certificate2 z pliku certyfikatu. IronPDF w pełni odpowiada standardowi X509Certificate2, oferując solidną i bezpieczną metodę implementacji podpisów cyfrowych. Tworząc obiekt certyfikatu, upewnij się, że X509KeyStorageFlags są ustawione na Exportable, ponieważ jest to wymagane przez podstawowe API kryptograficzne. Sprawdź praktyczne przykłady podpisów cyfrowych w naszym repozytorium kodu.
Install-Package IronPdf
:path=/static-assets/pdf/content-code-examples/how-to/signing-3.cs
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");
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates
' Create a new PDF from an HTML string for demonstration.
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = 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.
Dim cert As New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable)
' Create a PdfSignature object using the loaded certificate.
Dim signature As New PdfSignature(cert)
' Apply the signature to the PDF document.
pdf.Sign(signature)
' Save the securely signed PDF document.
pdf.SaveAs("Signed.pdf")
Powyższy kod najpierw generuje prosty PDF. Następnie ładuje plik certyfikatu .pfx do obiektu X509Certificate2. Ten obiekt, który reprezentuje cyfrową tożsamość, jest przekazywany do konstruktora PdfSignature. Na koniec metoda pdf.Sign stosuje ten podpis na dokumencie przed jego zapisaniem. For more information on the X509Certificate2 class, you can refer to the official Microsoft documentation.
Dodawanie szczegółowych informacji do podpisu cyfrowego
Podpis cyfrowy może zawierać więcej niż tylko certyfikat; można osadzić bogate metadane, aby dostarczyć kontekst dotyczący podpisu. Obejmuje to lokalizację podpisu, powód, informacje kontaktowe i bezpieczny znacznik czasu od zaufanego organu. Można również ustawiać i edytować metadane dla dodatkowych właściwości dokumentu.
Dodanie tych szczegółów poprawia ścieżkę audytu dokumentu i dostarcza weryfikatorom cennych informacji. IronPDF również obsługuje serwery sygnatur czasowych, które korzystają z nowoczesnych algorytmów hashowych SHA256 i SHA512.
:path=/static-assets/pdf/content-code-examples/how-to/signing-4.cs
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");
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");
Imports IronPdf
Imports IronPdf.Signing
Imports IronSoftware.Drawing
Imports System
' Load an existing PDF document to be signed.
Dim pdf = PdfDocument.FromFile("invoice.pdf")
' Create a PdfSignature object directly from the certificate file and password.
Dim 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")
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")
Możesz zauważyć ikonę ostrzeżenia w niektórych przeglądarkach PDF, jeśli certyfikat podpisu nie jest w zaufanym magazynie systemowym. Aby uzyskać zielony znacznik, certyfikat musi zostać dodany do zaufanych tożsamości przeglądarki.
Jak mogę dodać wizualną reprezentację do podpisu cyfrowego?
Podczas gdy podpis cyfrowy jest kryptograficznie osadzony w PDF, często przydatne jest posiadanie wizualnej reprezentacji na stronie. Może to być logo firmy, obraz podpisu odręcznego lub inne grafiki. IronPDF ułatwia dodanie obrazu do obiektu PdfSignature.
Możesz załadować obraz z pliku lub strumienia i precyzyjnie umieścić go na dowolnej stronie PDF. Obsługiwane formaty obrazów to PNG, JPEG, GIF, BMP, TIFF i WebP. Ta technika jest podobna do sposobu, w jaki możesz stemplować tekst i obrazy na dokumentach PDF.
:path=/static-assets/pdf/content-code-examples/how-to/signing-5.cs
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");
Imports IronPdf.Signing
Imports IronSoftware.Drawing
' This example demonstrates various ways to add a visual image to a PDF signature.
' Create a PdfSignature object.
Dim signature As 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
Dim signatureRectangle As 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
Dim image As AnyBitmap = AnyBitmap.FromFile("assets/visual-signature.png")
Using imageStream = image.ToStream()
signature.LoadSignatureImageFromStream(imageStream, 0, signatureRectangle)
End Using
' After configuring the signature image, apply it to a PDF.
Dim pdf As PdfDocument = PdfDocument.FromFile("invoice.pdf")
pdf.Sign(signature)
pdf.SaveAs("VisualSignature.pdf")
Ten kod pokazuje trzy równoważne sposoby dodania komponentu wizualnego do podpisu cyfrowego. Niezależnie czy masz obraz na dysku czy w pamięci, możesz łatwo stemplować go na PDF jako część procesu podpisywania. To wypełnia lukę między niewidocznym zabezpieczeniem kryptograficznym a widoczną aprobatą dokumentu.
Jak mogę kontrolować uprawnienia dokumentu po jego podpisaniu?
Podczas podpisywania dokumentu możesz określić, jakie zmiany, jeśli w ogóle, są dozwolone po tym fakcie. Na przykład, możesz chcieć całkowicie zablokować dokument lub tylko pozwolić użytkownikom na wypełnianie pól formularzy. IronPDF pozwala ustawić te uprawnienia za pomocą enumeracji SignaturePermissions. Dla zaawansowanej kontroli uprawnień, zobacz nasz przewodnik po ustawianiu haseł i uprawnień PDF.
Ustawienie uprawnień podpisu jest kluczową częścią zarządzania cyklem życia dokumentu. Zapewnia, że integralność dokumentu jest utrzymana zgodnie z twoimi zasadami po zastosowaniu podpisu. Jeśli użytkownik wykona niedozwolone działanie, podpis stanie się nieważny.
| `SignaturePermissions` Członek | Definicja |
|---|---|
| `NoChangesAllowed` | Żadne zmiany nie są dozwolone. Dokument jest skutecznie zablokowany. |
| `FormFillingAllowed` | Dozwolone jest jedynie wypełnianie istniejących pól formularzy i podpisywanie. |
| `AnnotationsAndFormFillingAllowed` | Pozwala na wypełnianie formularzy, podpisywanie i tworzenie lub modyfikowanie adnotacji. |
Zapisywanie i podpisywanie konkretnej rewizji PDF
PDF-y mogą przechowywać historię zmian, podobnie jak system kontroli wersji. To nazywa się zapisywaniem inkrementalnym. Podczas podpisywania PDF, podpis dotyczy konkretnej rewizji dokumentu. Jest to kluczowe dla procesów, w których dokument przechodzi przez wiele etapów aprobaty. Dowiedz się więcej o zarządzaniu historią rewizji PDF w naszym szczegółowym przewodniku.
W poniższym przykładzie ładujemy dokument PDF, dokonujemy edycji, a następnie podpisujemy bieżącą rewizję, jednocześnie pozwalając tylko na wypełnianie formularzy jako przyszłą zmianę. Korzystamy z SaveAsRevision, aby zatwierdzić aktualny stan do historii dokumentu przed zapisaniem pliku.
GetRevision
Zrozumienie zapisów inkrementalnych jest kluczowe dla zaawansowanych procesów z PDF. Podczas gdy prosty edytor może pokazywać tylko najnowszą wersję, narzędzie takie jak Adobe Acrobat może ujawnić całą historię rewizji, pokazując, kto podpisał którą wersję i jakie zmiany zostały dokonane między podpisami. IronPDF daje pełną programową kontrolę nad tym procesem.
Dla firm zarządzających złożonymi procesami dokumentów wymagającymi wysokiego poziomu bezpieczeństwa i zgodności może być potrzebne kompleksowe rozwiązanie. Iron Software oferuje Iron Suite, która zawiera IronPDF do podpisywania i manipulacji, plus inne biblioteki do szerokiego zakresu zadań przetwarzania dokumentów, dostępne za jednorazową opłatę.
Jak mogę zarządzać i weryfikować podpisy na wielu rewizjach?
Dokument PDF może mieć wiele podpisów zastosowanych na różnych jego rewizjach. IronPDF zapewnia narzędzia do skutecznego zarządzania tą historią.
- Cofnij się do poprzedniej wersji: Możesz przywrócić dokument do wcześniejszego stanu, używając metody
RollBackToRevision. To odrzuci wszystkie zmiany i podpisy dokonane po tej rewizji. - Zweryfikuj wszystkie podpisy: Metoda
VerifyAllSignaturessprawdza ważność wszystkich podpisów we wszystkich wersjach dokumentu. ZwróciSignatureStatus.Validtylko wtedy, gdy każdy podpis jest ważny i nie wprowadzono żadnych nieautoryzowanych zmian. - Usuń podpisy: Metoda
RemoveSignaturesusunie wszystkie podpisy cyfrowe z każdej wersji dokumentu, tworząc czystą, niepodpisaną wersję.
:path=/static-assets/pdf/content-code-examples/how-to/signing-6.cs
// 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");
Imports System
' Load a PDF with a complex signature history.
Dim pdf = PdfDocument.FromFile("multi_signed_report.pdf")
' Verify all signatures across all revisions.
' This ensures document integrity throughout its entire history
Dim allSignaturesValid As Boolean = 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 Then
Dim firstRevision As PdfDocument = pdf.GetRevision(0)
firstRevision.SaveAs("report_first_revision.pdf")
End If
' Create a completely unsigned version of the document.
' This removes all digital signatures while preserving content
pdf.RemoveSignatures()
pdf.SaveAs("report_unsigned.pdf")
IronSuite odgrywa kluczową rolę w naszej działalności. Są to narzędzia zwiększające wydajność w całej firmie, w tym tworzenie planów pięter i poprawa zarządzania zapasami.
Jak mogę stemplować odręczny podpis na PDF?
Czasami nie potrzebujesz kryptograficznego zabezpieczenia podpisu cyfrowego, ale po prostu chcesz zastosować wizualny, elektroniczny podpis, jak zeskanowany odręczny podpis. To jest często określane jako stemplowanie. IronPDF może to zrobić, wykorzystując swoje funkcje Watermark lub Stamp. Dla zaawansowanych opcji znakowania wodnego, zapoznaj się z naszym przewodnikiem po spersonalizowanych znakach wodnych.
Zacznijmy od przykładowej faktury PDF i obrazu podpisu odręcznego .png.
VerifySignatures
Oryginalna faktura PDF przed stemplowaniem podpisu.
Oto obraz podpisu, który zastosujemy:
Przykład obrazu podpisu odręcznego.
Następujący kod używa właściwości SignatureImage, aby ostemplować ten obraz w prawym dolnym rogu PDF.
:path=/static-assets/pdf/content-code-examples/how-to/signing-7.cs
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");
Imports IronPdf.Editing
' Load the existing PDF document.
Dim pdf = PdfDocument.FromFile("invoice.pdf")
' Create an HtmlStamp containing our signature image.
' HtmlStamp allows us to position HTML content precisely on the page
Dim signatureStamp = New HtmlStamp("<img src='assets/signature.png'/>") With {
' 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")
Jaki jest efekt końcowy stemplowanego PDF?
Po uruchomieniu kodu, obraz podpisu jest stemplowany na dokumencie, tworząc wizualnie podpisaną fakturę.
Końcowy PDF z obrazem podpisu odręcznego wstemplowanym w dolnym prawym rogu.
Jak mogę dodać interaktywne pole podpisu do PDF?
Dla dokumentów, które muszą być podpisane przez użytkownika końcowego w przeglądarce PDF, takiej jak Adobe Acrobat, możesz dodać interaktywne pole formularza podpisu. Tworzy to puste, klikalne pole, które zachęca użytkownika do zastosowania własnego podpisu cyfrowego. Dla pełnego przewodnika po formularzach PDF, zobacz nasz samouczek tworzenia formularzy PDF.
Możesz stworzyć SignatureFormField i dodać go do kolekcji formularzy PDF. Masz precyzyjną kontrolę nad jego lokalizacją i rozmiarem na stronie. To jest szczególnie przydatne dla dokumentów, które wymagają kilku podpisów lub kiedy musisz zebrać podpisy od zewnętrznych stron.
true``RemoveSignatures
:path=/static-assets/pdf/content-code-examples/how-to/signing-8.cs
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");
Imports IronPdf.Forms
Imports IronSoftware.Drawing
' Create a new PDF to add the signature field to.
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Please Sign Below</h1>")
' Define the properties for the signature form field.
Dim fieldName As String = "ClientSignature" ' Unique identifier for the field
Dim pageIndex As Integer = 0 ' Add to the first page (zero-indexed)
Dim fieldRect As 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
Dim signatureField As 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")
Kiedy użytkownik otworzy ten PDF, zobaczy klikalne pole, pozwalające na dokończenie procesu podpisu z użyciem własnego cyfrowego identyfikatora. Możesz dowiedzieć się więcej o tworzeniu i zarządzaniu interaktywnymi formularzami w naszym przewodniku po tworzeniu formularzy PDF.
Niepodpisane, interaktywne pole podpisu dodane programowo do dokumentu PDF.
Jak mogę odzyskać nazwę podpisującego z podpisów zweryfikowanych?
Aby uzyskać powszechną nazwę właściciela certyfikatu, który podpisał podpis, możemy użyć klasy VerifiedSignature, aby uzyskać dostęp do właściwości SignerName. Poniżej znajduje się fragment kodu pokazujący, jak to zrobić.
: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}");
});
Imports IronPdf
Imports System
' Import the Signed PDF report
Dim pdf = PdfDocument.FromFile("multi_signed_report.pdf")
' Using GetVerifiedSignatures() obtain a list of `VerifiedSignature` objects from the PDF
pdf.GetVerifiedSignatures().ForEach(Sub(signature)
' Print out the SignerName of each `VerifiedSignature` object
Console.WriteLine($"SignatureName: {signature.SignerName}")
End Sub)
Po zaimportowaniu podpisanego pliku PDF, korzystamy z metody GetSignatures(...), aby pobrać listę obiektów VerifiedSignature w raporcie i wydrukować SignerName dla każdego podpisu.
GetVerifiedSignatures``SignerName
Należy pamiętać, że ta wartość jest wyodrębniona z Rozróżnionego Nazwiska Podmiotu (SubjectDN) certyfikatu i zwróci null, jeśli pole CN nie jest obecne.
Jakie są kolejne kroki dla podpisywania PDF za pomocą IronPDF?
Ten przewodnik pokazał potężne i elastyczne możliwości podpisywania PDF za pomocą IronPDF. Bez względu na to, czy potrzebujesz zastosować bezpieczne podpisy cyfrowe z dokładnymi metadanymi, zarządzać rewizjami dokumentu, stemplować wizualne podpisy czy tworzyć interaktywne formularze, IronPDF zapewnia kompleksowy i przyjazny dla dewelopera interfejs API do wykonania zadania.
Aby kontynuować odkrywanie, możesz pobrać bibliotekę IronPDF for .NET i uzyskać bezpłatną licencję próbna, aby przetestować wszystkie jej funkcje w swoich projektach. Dla zaawansowanych technik manipulacji dokumentem, w tym dodawania adnotacji i pracy z polami formularza, zapoznaj się z naszą rozległą dokumentacją i samouczkami.
Gotowy, aby sprawdzić, co jeszcze możesz zrobić? Zapoznaj się z naszą stroną z samouczkami tutaj: Podpisywanie i zabezpieczanie plików PDF
Często Zadawane Pytania
Jak cyfrowo podpisać PDF przy użyciu certyfikatu w C#?
Z IronPDF możesz cyfrowo podpisać PDF za pomocą jednej linii kodu używając klasy PdfSignature. Po prostu stwórz nowy obiekt PdfSignature z plikiem certyfikatu (.pfx lub .p12) i hasłem, a następnie wywołaj metodę SignPdfFile(). Na przykład: new IronPdf.Signing.PdfSignature("certificate.pfx", "password").SignPdfFile("input.pdf"). To stosuje niezmienny podpis cyfrowy używając X509Certificate2, aby zapewnić autentyczność dokumentu.
Jakie typy podpisów PDF są obsługiwane?
IronPDF obsługuje trzy główne typy podpisów PDF: 1) podpisy cyfrowe używające certyfikatów X509Certificate2 do uwierzytelniania i zapobiegania zmianom, 2) wizualne odciski podpisów, które dodają obrazy podpisów graficznych lub odręcznych do dokumentów, i 3) interaktywne pola formularza podpisu, które pozwalają użytkownikom na elektroniczne podpisanie PDF-ów. Każdy typ służy różnym celom zabezpieczeń dokumentu i wymaganiom dotyczącym przepływu pracy.
Jakie formaty certyfikatów można używać do cyfrowego podpisywania?
IronPDF obsługuje popularne formaty cyfrowych certyfikatów, w tym pliki .pfx (Personal Information Exchange) i .p12. Te pliki certyfikatów zawierają zarówno klucz publiczny, jak i prywatny potrzebne do cyfrowego podpisywania. Klasa PdfSignature w IronPDF działa z każdym obiektem X509Certificate2, dając elastyczność w ładowaniu i zarządzaniu certyfikatami podpisywania.
Czy mogę dodać wizualne przedstawienie do mojego podpisu cyfrowego?
Tak, IronPDF pozwala dodać wizualne elementy do twoich podpisów cyfrowych. Możesz dołączyć graficzne przedstawienie takie jak obraz podpisu odręcznego, logo firmy, czy niestandardowy stempel obok podpisu kryptograficznego. To łączy bezpieczeństwo certyfikatów cyfrowych z wizualnym potwierdzeniem, sprawiając, że podpisane dokumenty są zarówno bezpieczne, jak i profesjonalnie prezentowane.
Jak stworzyć interaktywne pole podpisu, aby użytkownicy mogli podpisywać elektronicznie?
IronPDF umożliwia dodawanie interaktywnych pól formularza podpisu do dokumentów PDF. Te pola pozwalają użytkownikom na elektroniczne podpisać dokumenty poprzez kliknięcie i narysowanie ich podpisu lub przesłanie obrazu podpisu. Ta funkcja jest idealna do tworzenia dokumentów wymagających zbierania podpisów, takich jak kontrakty lub formularze, które muszą być podpisane przez wiele stron.
Czy podpisanie PDF zapewnia integralność dokumentu?
Tak, kiedy cyfrowo podpisujesz PDF używając IronPDF z X509Certificate2, tworzy on pieczęć niemożliwą do zmiany, która zapewnia integralność dokumentu. Podpis cyfrowy gwarantuje, że dokument nie został zmieniony od momentu jego podpisania. Jakiekolwiek modyfikacje PDF po podpisaniu unieważnią podpis, ostrzegając odbiorców, że dokument mógł zostać naruszony.

