
IronPDF vs Docusign - Jak dodać podpis cyfrowy do PDF
Podpis cyfrowy to algorytm matematyczny używany do uwierzytelniania tożsamości podpisującego oraz zapewnienia integralności dokumentu. Tworzy unikalny identyfikator powiązany z dokumentem, który jest podpisany za pomocą klucza prywatnego znanego tylko podpisującemu. Aby zweryfikować autentyczność cyfrowo podpisanego dokumentu, odbiorca używa klucza publicznego do odszyfrowania podpisu i potwierdzenia jego ważności.
W tym artykułe porównamy, jak dodawać podpisy cyfrowe do dokumentów PDF używając bibliotek QuestPDF i IronPDF w języku C#. Obie biblioteki oferują solidne funkcje do manipulacji PDF, w tym możliwości podpisów cyfrowych.
Dlaczego podpisy cyfrowe są ważne?
Podpisy cyfrowe zapewniają, że treść dokumentu nie została zmanipulowana i potwierdzają tożsamość podpisującego. Zapewnienie to oferuje wyższy poziom bezpieczeństwa w porównaniu do tradycyjnych podpisów. Podpisy cyfrowe mają moc prawną w wielu krajach i są powszechnie używane do umów, porozumień oraz innych dokumentów prawnych.
Wymagania wstępne
Zanim zaczniemy, upewnij się, że masz podstawową wiedzę na temat C# oraz .NET Framework. Będziesz musiał zainstalować zarówno QuestPDF, jak i IronPDF. QuestPDF można zainstalować z NuGet, a IronPDF można pobrać z strony IronPDF lub poprzez NuGet Package Manager.
Będziesz także potrzebować gotowego podpisu cyfrowego, a jeśli go nie masz, istnieje wiele zasobów, które pomogą Ci go stworzyć.

Porównanie dodawania podpisu cyfrowego do dokumentów PDF w C# przy użyciu QuestPDF vs IronPDF
Teraz przyjrzyjmy się bliżej tym dwóm bibliotekom i temu, jak radzą sobie z zastosowaniem podpisów cyfrowych w dokumentach PDF.
QuestPDF to biblioteka open-source skoncentrowana na generowaniu dokumentów PDF przy użyciu płynnego API do tworzenia zaawansowanych układów dzięki swojemu wszechstronnemu silnikowi layout. Jest mniej nastawiona na manipulację PDF, ale można ją używać razem z innymi narzędziami do podpisywania PDF. Posiada również towarzyszącą aplikację, która umożliwia użytkownikom badanie struktury dokumentu ich plików PDF z łatwością, oraz używa funkcji hot reload, aby zapewnić natychmiastowe podglądy dokumentów bez konieczności ponownej kompilacji kodu.
IronPDF to silna biblioteka .NET oferująca zaawansowane funkcje do generowania, manipulowania i podpisywania dokumentów PDF. Jest zaprojektowana dla programistów .NET poszukujących wszechstronnego i łatwego w użyciu rozwiązania. Dzięki IronPDF możesz łatwo szyfrować dokumenty PDF, dodawać adnotacje, konwertować HTML na PDF, wyodrębniać treści i nie tylko!
QuestPDF

QuestPDF nie wspiera natywnie podpisów cyfrowych. Jednak można go połączyć z innymi bibliotekami (jak BouncyCastle lub PDFSharp) dla tej funkcjonalności. Po wygenerowaniu dokumentu z QuestPDF możesz go podpisać, używając biblioteki, która oferuje narzędzia do podpisywania PDF, jak iText, ale sama biblioteka QuestPDF nie obsługuje podpisywania PDF.
Oferuje inne podstawowe formy bezpieczeństwa PDF, takie jak szyfrowanie PDF, a także zaawansowane tworzenie PDF oraz możliwość projektowania dokumentów PDF, więc wciąż można ją uznać za realną opcję dla tych, którzy szukają biblioteki PDF zdolnej do obsługi podstawowych zadań PDF bez zbyt wielu bajerów.
IronPDF
IronPDF oferuje prosty API do podpisywania PDF za pomocą cyfrowego certyfikatu. Poniższy kod pokazuje, jak zastosować podpis cyfrowy do pliku PDF używając IronPDF.
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
public class Program
{
static void Main(string[] args)
{
// Load an existing PDF document
PdfDocument pdf = PdfDocument.FromFile("invoice.pdf");
// Load a certificate from a .pfx file
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "your-password", X509KeyStorageFlags.Exportable);
// Create a PDF signature using the certificate
var sig = new PdfSignature(cert);
// Sign the PDF document
pdf.Sign(sig);
// Save the signed PDF document
pdf.SaveAs("signed.pdf");
}
}Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates
Public Class Program
Shared Sub Main(ByVal args() As String)
' Load an existing PDF document
Dim pdf As PdfDocument = PdfDocument.FromFile("invoice.pdf")
' Load a certificate from a .pfx file
Dim cert As New X509Certificate2("IronSoftware.pfx", "your-password", X509KeyStorageFlags.Exportable)
' Create a PDF signature using the certificate
Dim sig = New PdfSignature(cert)
' Sign the PDF document
pdf.Sign(sig)
' Save the signed PDF document
pdf.SaveAs("signed.pdf")
End Sub
End Class
Ten kod pokazuje, jak cyfrowo podpisać dokument PDF przy użyciu IronPDF i certyfikatu X.509. Najpierw ładuje już istniejący PDF (invoice.pdf) do obiektu PdfDocument. Następnie ładuje certyfikat z pliku .pfx (IronSoftware.pfx) podając hasło (your-password) i ustawiając flagę X509KeyStorageFlags.Exportable, aby umożliwić eksport klucza prywatnego certyfikatu, jeśli to konieczne.
Dalej tworzony jest obiekt PdfSignature przy użyciu załadowanego certyfikatu. Ten podpis jest następnie stosowany do dokumentu PDF, efektywnie go podpisując. Na koniec podpisany PDF jest zapisywany jako nowy plik o nazwie signed.pdf. Ten proces zapewnia, że PDF jest bezpiecznie podpisany, weryfikując jego autentyczność i integralność.
Jak zweryfikować podpis przy użyciu IronPDF
IronPDF także oferuje łatwą metodę weryfikacji podpisów cyfrowych. Można wywołać metodę VerifyPdfSignatures, aby sprawdzić ważność podpisów w dokumencie.
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("signed_test_document.pdf");
// Verify the digital signatures in the PDF document
bool isValid = pdf.VerifyPdfSignatures();
if (isValid)
{
Console.WriteLine("The digital signature is valid.");
}
else
{
Console.WriteLine("The digital signature is invalid or missing.");
}Imports IronPdf
Private pdf As PdfDocument = PdfDocument.FromFile("signed_test_document.pdf")
' Verify the digital signatures in the PDF document
Private isValid As Boolean = pdf.VerifyPdfSignatures()
If isValid Then
Console.WriteLine("The digital signature is valid.")
Else
Console.WriteLine("The digital signature is invalid or missing.")
End IfTa metoda zwraca true, jeśli wszystkie podpisy w dokumencie są ważne, oraz false, jeśli jakikolwiek podpis jest nieważny lub brakujący.
Podsumowanie różnic między QuestPDF a IronPDF
Łatwość użycia: IronPDF oferuje znacznie prostsze API do podpisywania PDF w porównaniu do QuestPDF. QuestPDF nie oferuje natywnego wsparcia dla podpisów cyfrowych i wymaga zewnętrznych bibliotek (np. BouncyCastle) do tej funkcjonalności. Natomiast IronPDF ma wbudowane metody do podpisywania i weryfikacji PDF, co sprawia, że zaimplementowanie podpisów cyfrowych jest bardziej bezpośrednie.
Zarządzanie certyfikatami: Obie biblioteki mogą pracować z certyfikatami, ale IronPDF obsługuje je bezpośrednio przez swoje wbudowane metody (np. SignWithFile), co upraszcza proces. Pozwala także na określenie uprawnień podpisu, czego nie oferuje QuestPDF. Podpisywaj dokumenty PDF przy użyciu IronPDF w zaledwie kilku liniach kodu.
Weryfikacja podpisu cyfrowego: IronPDF oferuje łatwą w użyciu metodę (VerifyPdfSignatures) do sprawdzania ważności podpisów cyfrowych w plikach PDF, podczas gdy QuestPDF nie ma tej funkcji i polega na zewnętrznych bibliotekach do weryfikacji podpisów.
Licencja i koszty: QuestPDF to biblioteka open-source, którą można używać bezpłatnie. Przychodzi to jednak z kosztem braku zaawansowanych funkcji, takich jak wsparcie podpisów cyfrowych. IronPDF jest bezpłatny w fazie rozwoju, a poza tym oferuje różne poziomy cenowe dla swojego licencjonowania komercyjnego, aby można było je wypróbować zanim dokonasz zakupu.
Wnioski
Podsumowując, podczas gdy QuestPDF doskonale radzi sobie z tworzeniem PDF o złożonych układach, brakuje mu natywnej obsługi podpisów cyfrowych, co wymaga użycia zewnętrznych bibliotek jak BouncyCastle. Natomiast IronPDF oferuje zintegrowane rozwiązanie do podpisywania i weryfikacji podpisów cyfrowych, zapewniając prostszy i bardziej efektywny proces.
Dla programistów potrzebujących kompletnego rozwiązania PDF z wbudowanymi możliwościami podpisów cyfrowych, IronPDF jest lepszym wyborem, z szerokim zakresem funkcji, obszerną dokumentacją i więcej. QuestPDF, jednakże, pozostaje mocną opcją open-source do generowania PDF, ale podpisywanie cyfrowe wymaga dodatkowej złożoności. Decyzja ostatecznie zależy od potrzeb projektu i pożądanego poziomu prostoty.

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.
Powiązane artykuły


