COMPARACIóN DE PRODUCTOS

Añadir Firma Digital a PDF en C# Usando Itextsharp

Actualizado 18 de abril, 2023
Compartir:

Firma de documentos PDF, incluidos archivos PDF. Una firma digital es una fórmula matemática que se utiliza para autenticar y garantizar la integridad de un documento electrónico.

En este tutorial, le mostraremos cómo añadir información de firma digital a un PDF en C# utilizando iTextSharp y Bibliotecas IronPDF.

Antes de sumergirnos en el código, echemos un vistazo rápido a lo que es una firma digital y por qué es importante.

¿Qué es una firma digital?

Una firma digital es una fórmula matemática que se utiliza para autenticar y garantizar la integridad de un documento electrónico.

Es una firma electrónica que se utiliza para firmar digitalmente documentos electrónicos. Las firmas digitales ofrecen un alto nivel de seguridad y son legalmente vinculantes en muchos países.

Cuando se firma digitalmente un documento, se crea una firma digital única vinculada al documento.

Esta firma se crea utilizando una clave privada, que sólo conoce el firmante. La clave de firma contiene información sobre el firmante, como su nombre, dirección de correo electrónico y otros datos.

Para verificar la autenticidad de un documento firmado digitalmente, el destinatario debe tener acceso a la clave pública del firmante. Las claves públicas se utilizan para descifrar la firma y verificar su autenticidad.

¿Por qué son importantes las firmas digitales?

Las firmas digitales son importantes porque proporcionan un alto nivel de seguridad y garantizan la integridad de los documentos digitales.

Suelen utilizarse en situaciones en las que es necesario firmar documentos, como contratos, acuerdos y otros documentos legales.

Las firmas digitales ofrecen varias ventajas con respecto a las firmas tradicionales:

  1. Son más seguras y a prueba de manipulaciones que las firmas tradicionales.
  2. Pueden verificarse electrónicamente, lo que reduce la necesidad de verificación manual.
  3. Pueden utilizarse para firmar documentos desde cualquier lugar del mundo.
  4. Proporcionan un mayor nivel de garantía que las firmas tradicionales.

Comparación sobre cómo añadir firma digital a documentos pdf en C# usando las librerías itextsharp y IronPDF

Ahora que ya sabemos qué es una firma digital y por qué es importante, veamos cómo añadir una firma digital a un documento PDF en C# utilizando iTextSharp y IronPDF.

Las firmas digitales se utilizan para verificar la autenticidad de los documentos electrónicos, y los PDF son un formato de datos muy popular para este tipo de documentos.

En este tutorial, compararemos cómo añadir firmas digitales a archivos PDF utilizando dos bibliotecas C#, iTextSharp y IronPDF.

Firma electrónica: El futuro de la firma digital con firmas reales

iTextSharp es una popular biblioteca de código abierto para crear y manipular documentos PDF en C#.

Incluye soporte para firmas digitales y se utiliza ampliamente en proyectos .NET. Por otro lado, IronPDF es una biblioteca comercial que proporciona funciones similares para la manipulación de PDF, incluidas las firmas digitales.

En este tutorial, demostraremos cómo utilizar ambas bibliotecas para añadir firmas digitales a documentos PDF, abarcando conceptos como la creación de un certificado digital, la firma de un documento PDF mediante una clave privada y la verificación de la firma. También proporcionaremos ejemplos de código fuente para cada paso.

Requisitos previos

Antes de empezar, debe tener conocimientos básicos de programación en C# y de .NET Framework.

Además, necesitará tener las bibliotecas iTextSharp y IronPDF instaladas en su proyecto.

Puede descargar iTextSharp desde NuGet, e IronPDF puede descargarse desde el sitio web de IronPDF.

Añadir Firma Digital PDF Programáticamente

Creación de un certificado digital

IronPDF es una biblioteca .NET que permite crear, editar y firmar documentos PDF en C#. En esta guía, recorreremos el proceso de firma de un PDF utilizando IronPDF y un objeto X509Certificate2.

Ver detalles del firmante

Estos son los pasos para firmar un PDF con IronPDF:

  1. Incluya los espacios de nombres necesarios.
    using IronPdf; using IronPdf.Signing; using System.Security.Cryptography.X509Certificates;  
    using IronPdf; using IronPdf.Signing; using System.Security.Cryptography.X509Certificates;  
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates
VB   C#
  1. Renderiza el documento PDF utilizando la clase ChromePdfRenderer.
    ChromePdfRenderer renderer = new ChromePdfRenderer();
    PdfDocument pdf = renderer.RenderHtmlAsPdf("foo");  
    ChromePdfRenderer renderer = new ChromePdfRenderer();
    PdfDocument pdf = renderer.RenderHtmlAsPdf("foo");  
Dim renderer As New ChromePdfRenderer()
	Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("foo")
VB   C#

En este ejemplo, estamos renderizando un simple documento HTML con un único elemento de cabecera.

![](/static-assets/pdf/blog/add-digital-signature-topdf-in-csharp-using-itextsharp/add-digital-signature-topdf-in-csharp-using-itextsharp-6.webp)
  1. Cargue el objeto X509Certificate2 con la firma digital que desea utilizar para firmar el PDF.
    X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);  
    X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);  
Dim cert As New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable)
VB   C#

En este ejemplo, estamos cargando el certificado desde un archivo PKCS#12 llamado "IronSoftware.pfx" y proporcionando la contraseña "123456". También establecemos X509KeyStorageFlags en Exportable para poder utilizar la clave privada del certificado para firmar el PDF.

![](/static-assets/pdf/blog/add-digital-signature-topdf-in-csharp-using-itextsharp/add-digital-signature-topdf-in-csharp-using-itextsharp-7.webp) 
  1. Crea un objeto PdfSignature utilizando el certificado.
    var sig = new PdfSignature(cert);  
    var sig = new PdfSignature(cert);  
Dim sig = New PdfSignature(cert)
VB   C#

En este ejemplo, estamos creando un nuevo objeto PdfSignature utilizando el objeto certificado que creamos en el paso 3.

  1. Firme el documento PDF mediante PdfDocument.Sign()pasando el objetoPdfSignature` creado en el paso 4.
  pdf.Sign(sig);  
  pdf.Sign(sig);  
pdf.Sign(sig)
VB   C#
  1. Guarda el documento PDF firmado en un archivo.
    pdf.SaveAs("signed.pdf");  
    pdf.SaveAs("signed.pdf");  
pdf.SaveAs("signed.pdf")
VB   C#

Aquí está el código completo:

using IronPdf; 
using IronPdf.Signing; 
using System.Security.Cryptography.X509Certificates;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("foo");
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);

var sig = new PdfSignature(cert);
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");  
using IronPdf; 
using IronPdf.Signing; 
using System.Security.Cryptography.X509Certificates;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("foo");
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);

var sig = new PdfSignature(cert);
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");  
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates

Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("foo")
Private cert As New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable)

Private sig = New PdfSignature(cert)
pdf.Sign(sig)
pdf.SaveAs("signed.pdf")
VB   C#

IronPDF - Compre ahora en Software.com.br

Firmar un archivo PDF

Una vez que hemos creado un certificado digital, podemos utilizarlo para firmar un archivo PDF.

Para firmar un archivo PDF, tenemos que crear un nuevo objeto de firma y establecer sus propiedades, como la ubicación de la nueva firma en la página y el motivo de la firma.

Para firmar un archivo PDF utilizando iTextSharp, podemos utilizar el siguiente código

iTextSharp es una popular biblioteca de código abierto para trabajar con documentos PDF en C#. Con iTextSharp, puede crear y manipular documentos PDF, así como añadirles firmas digitales. En este artículo, nos centraremos en cómo firmar archivos PDF utilizando iTextSharp.

Para empezar, tendrá que añadir una referencia al archivo iTextSharp.dll en su proyecto. Puede descargar la última versión de iTextSharp desde su sitio web oficial.

Una vez que haya añadido la referencia iTextSharp a su proyecto, podrá utilizar la biblioteca PDFSigner para firmar documentos PDF. La biblioteca PDFSigner contiene tres clases: Cert, MetaData y PDFSigner.

La clase Cert se utiliza para contener un certificado y extraer la información necesaria para la firma. La clase MetaData contiene los metadatos del PDF, y la clase PDFSigner se utiliza para crear la firma y añadirla al documento PDF.

El método processCert se utiliza para leer los certificados digitales y extraer la entrada de la clave privada. También construye la cadena de certificados digitales si está disponible.

El método Sign se utiliza para crear un nuevo documento PDF utilizando PDFStamper y añadirle la firma. Puede configurar el aspecto de la firma y añadirle un atributo de motivo, contacto y ubicación. El método SetCrypto se utiliza para firmar el documento utilizando la clave privada y el certificado de cadena extraídos del archivo de certificado. Por último, SetVisibleSignature se utiliza si necesitas añadir una firma visible al documento.

He aquí un fragmento de código de ejemplo que muestra cómo firmar un archivo PDF utilizando iTextSharp:

using iTextSharp.text.pdf;
using System.IO; 

public void SignPDF(string inputPDF, string outputPDF, string certPath, string certPassword, string reason, string contact, string location, bool visible) { 
  PdfReader reader = new PdfReader(inputPDF);

  //Activar multifirmas
  PdfStamper st = PdfStamper.CreateSignature(reader, new FileStream(outputPDF, FileMode.Create, FileAccess.Write), '\0', null, true); 

  //Para desactivar las firmas múltiples, descomente esta línea: 
  //cada nueva firma invalidará las anteriores. 

  //PdfStamper st = PdfStamper.CreateSignature(reader, new FileStream(outputPDF, FileMode.Create, FileAccess.Write), '\0'); 

  MetaData metadata = new MetaData();
  metadata.setAuthor("John Doe"); 
  metadata.setTitle("Signed PDF Document");
  st.MoreInfo = metadata.getMetaData();
  st.XmpMetadata = metadata.getStreamedMetaData();
  PdfSignatureAppearance sap = st.SignatureAppearance;

  //Lea el certificado y extraiga la entrada de la clave privada
  Cert myCert = new Cert(certPath, certPassword);
  sap.SetCrypto(myCert.Akp, myCert.Chain, null, PdfSignatureAppearance.WINCER_SIGNED);
  sap.Reason = reason;
  sap.Contact = contact;
  sap.Location = location; 

  //Añadir una firma visible al documento si (visible)
  sap.SetVisibleSignature(new iTextSharp.text.Rectangle(100, 100, 250, 150), 1, null);
  st.Close();
}  
using iTextSharp.text.pdf;
using System.IO; 

public void SignPDF(string inputPDF, string outputPDF, string certPath, string certPassword, string reason, string contact, string location, bool visible) { 
  PdfReader reader = new PdfReader(inputPDF);

  //Activar multifirmas
  PdfStamper st = PdfStamper.CreateSignature(reader, new FileStream(outputPDF, FileMode.Create, FileAccess.Write), '\0', null, true); 

  //Para desactivar las firmas múltiples, descomente esta línea: 
  //cada nueva firma invalidará las anteriores. 

  //PdfStamper st = PdfStamper.CreateSignature(reader, new FileStream(outputPDF, FileMode.Create, FileAccess.Write), '\0'); 

  MetaData metadata = new MetaData();
  metadata.setAuthor("John Doe"); 
  metadata.setTitle("Signed PDF Document");
  st.MoreInfo = metadata.getMetaData();
  st.XmpMetadata = metadata.getStreamedMetaData();
  PdfSignatureAppearance sap = st.SignatureAppearance;

  //Lea el certificado y extraiga la entrada de la clave privada
  Cert myCert = new Cert(certPath, certPassword);
  sap.SetCrypto(myCert.Akp, myCert.Chain, null, PdfSignatureAppearance.WINCER_SIGNED);
  sap.Reason = reason;
  sap.Contact = contact;
  sap.Location = location; 

  //Añadir una firma visible al documento si (visible)
  sap.SetVisibleSignature(new iTextSharp.text.Rectangle(100, 100, 250, 150), 1, null);
  st.Close();
}  
Imports Microsoft.VisualBasic
Imports iTextSharp.text.pdf
Imports System.IO

Public Sub SignPDF(ByVal inputPDF As String, ByVal outputPDF As String, ByVal certPath As String, ByVal certPassword As String, ByVal reason As String, ByVal contact As String, ByVal location As String, ByVal visible As Boolean)
  Dim reader As New PdfReader(inputPDF)

  'Activar multifirmas
  Dim st As PdfStamper = PdfStamper.CreateSignature(reader, New FileStream(outputPDF, FileMode.Create, FileAccess.Write), ControlChars.NullChar, Nothing, True)

  'Para desactivar las firmas múltiples, descomente esta línea: 
  'cada nueva firma invalidará las anteriores. 

  'PdfStamper st = PdfStamper.CreateSignature(reader, new FileStream(outputPDF, FileMode.Create, FileAccess.Write), '\0'); 

  Dim metadata As New MetaData()
  metadata.setAuthor("John Doe")
  metadata.setTitle("Signed PDF Document")
  st.MoreInfo = metadata.getMetaData()
  st.XmpMetadata = metadata.getStreamedMetaData()
  Dim sap As PdfSignatureAppearance = st.SignatureAppearance

  'Lea el certificado y extraiga la entrada de la clave privada
  Dim myCert As New Cert(certPath, certPassword)
  sap.SetCrypto(myCert.Akp, myCert.Chain, Nothing, PdfSignatureAppearance.WINCER_SIGNED)
  sap.Reason = reason
  sap.Contact = contact
  sap.Location = location

  'Añadir una firma visible al documento si (visible)
  sap.SetVisibleSignature(New iTextSharp.text.Rectangle(100, 100, 250, 150), 1, Nothing)
  st.Close()
End Sub
VB   C#

Para firmar un archivo PDF utilizando IronPDF, podemos utilizar el siguiente código

Para firmar un archivo PDF, siga estos pasos:

  1. Incluya el espacio de nombres necesario:
    using IronPdf;  
    using IronPdf;  
Imports IronPdf
VB   C#
  1. Cargar el archivo PDF mediante PdfDocument.FromFile() método:
    PdfDocument pdf = PdfDocument.FromFile("annual_census.pdf");  
    PdfDocument pdf = PdfDocument.FromFile("annual_census.pdf");  
Dim pdf As PdfDocument = PdfDocument.FromFile("annual_census.pdf")
VB   C#

En este ejemplo, estamos cargando un archivo PDF llamado "annual_census.pdf" desde el directorio actual. Este método devuelve un objeto PdfDocument que representa el archivo PDF cargado.

  1. Realice las modificaciones necesarias en el archivo PDF.

     En este ejemplo, suponemos que se han realizado algunas modificaciones en el archivo PDF.
  2. Firme el archivo PDF mediante PdfDocument.SignWithFile() método:
    pdf.SignWithFile("/assets/IronSignature.p12", "password", null, PdfDocument.SignaturePermissions.FormFillingAllowed);  
    pdf.SignWithFile("/assets/IronSignature.p12", "password", null, PdfDocument.SignaturePermissions.FormFillingAllowed);  
pdf.SignWithFile("/assets/IronSignature.p12", "password", Nothing, PdfDocument.SignaturePermissions.FormFillingAllowed)
VB   C#

En este ejemplo, estamos firmando el archivo PDF utilizando un archivo PKCS#12 llamado "IronSignature.p12" ubicado en el directorio "/assets". También proporcionamos la contraseña del archivo PKCS#12 como segundo argumento. El tercer argumento especifica el motivo de la firma del archivo PDF, que hemos dejado como nulo. El cuarto argumento especifica los permisos de la firma, que hemos configurado para que sólo permita rellenar formularios.

  1. Guardar el archivo PDF con la firma como una revisión utilizando el comando PdfDocument.SaveAsRevision() método:
    PdfDocument pdfWithRevision = pdf.SaveAsRevision();  
    PdfDocument pdfWithRevision = pdf.SaveAsRevision();  
Dim pdfWithRevision As PdfDocument = pdf.SaveAsRevision()
VB   C#

Este método crea un nuevo objeto PdfDocument que contiene el archivo PDF original y la firma como revisión.

  1. Guarde el archivo PDF firmado en el disco mediante PdfDocument.SaveAs() método:
    pdfWithRevision.SaveAs("annual\_census\_2.pdf");  
    pdfWithRevision.SaveAs("annual\_census\_2.pdf");  
pdfWithRevision.SaveAs("annual\_census\_2.pdf")
VB   C#

En este ejemplo, guardamos el nombre del archivo PDF firmado como "annual_census\2.pdf" en el directorio actual.

    Aquí está el código completo:
    using IronPdf; PdfDocument pdf = PdfDocument.FromFile("annual\_census.pdf"); 
    //  realice las modificaciones necesarias 
    pdf.SignWithFile("/assets/IronSignature.p12", "password", null, PdfDocument.SignaturePermissions.FormFillingAllowed); 
    PdfDocument pdfWithRevision = pdf.SaveAsRevision(); 
    pdfWithRevision.SaveAs("annual\_census_2.pdf");  
    using IronPdf; PdfDocument pdf = PdfDocument.FromFile("annual\_census.pdf"); 
    //  realice las modificaciones necesarias 
    pdf.SignWithFile("/assets/IronSignature.p12", "password", null, PdfDocument.SignaturePermissions.FormFillingAllowed); 
    PdfDocument pdfWithRevision = pdf.SaveAsRevision(); 
    pdfWithRevision.SaveAs("annual\_census_2.pdf");  
Imports IronPdf
Private pdf As PdfDocument = PdfDocument.FromFile("annual\_census.pdf")
	'  realice las modificaciones necesarias 
	pdf.SignWithFile("/assets/IronSignature.p12", "password", Nothing, PdfDocument.SignaturePermissions.FormFillingAllowed)
	Dim pdfWithRevision As PdfDocument = pdf.SaveAsRevision()
	pdfWithRevision.SaveAs("annual\_census_2.pdf")
VB   C#

IronPDF for .NET

Verificación de firmas digitales

Una vez firmado un documento PDF, es importante poder verificar las firmas para asegurarse de que el documento no ha sido manipulado desde que se firmó.

Verificación de firmas digitales mediante la biblioteca iTextSharp

Para verificar la firma digital de un PDF utilizando iTextSharp en C#, siga los pasos que se indican a continuación:

  1. En primer lugar, añada la biblioteca iTextSharp a su proyecto. Puede hacerlo utilizando el gestor de paquetes NuGet en Visual Studio. Busque iTextSharp e instálelo.
  2. Definir una función para verificar la firma digital del documento PDF utilizando la biblioteca iTextSharp.
  3. En la función, cree un objeto PdfReader pasando la ruta del documento PDF que desea verificar.
  4. A continuación, obtenga los AcroFields del documento PDF utilizando el método GetAcroFields del objeto PdfReader.
  5. Obtén los nombres de las firmas utilizando el método GetSignatureNames del objeto AcroFields.
  6. Recorre los nombres de las firmas y recupera el objeto PdfPKCS7 de cada firma utilizando el método GetSignature del objeto AcroFields.
  7. Verifica la firma utilizando el método Verify del objeto PdfPKCS7.
  8. Si la firma es válida, devuelve true. En caso contrario, devuelve false.

    Aquí está el código para verificar la firma digital de un documento PDF usando iTextSharp en C#:

public static bool VerifyPdfDigitalSignature(string filePath)
{
    bool isValid = false;

    try
    {
        //  Crear un objeto PdfReader
        PdfReader reader = new PdfReader(filePath);

        //  Obtener los AcroFields del documento PDF
        AcroFields fields = reader.AcroFields;

        //  Obtener los nombres de las firmas
        List<string> names = fields.GetSignatureNames();

        //  Recorrer los nombres de las firmas
        foreach (string name in names)
        {
            //  Obtener el objeto PdfPKCS7 para la firma
            PdfPKCS7 pkcs7 = fields.VerifySignature(name);

            //  Verificar la firma
            if (pkcs7.Verify())
            {
                isValid = true;
            }
            else
            {
                isValid = false;
            }
        }

        reader.Close();
    }
    catch (Exception ex)
    {
        //  Manejar excepción
        isValid = false;
    }

    return isValid;
}
public static bool VerifyPdfDigitalSignature(string filePath)
{
    bool isValid = false;

    try
    {
        //  Crear un objeto PdfReader
        PdfReader reader = new PdfReader(filePath);

        //  Obtener los AcroFields del documento PDF
        AcroFields fields = reader.AcroFields;

        //  Obtener los nombres de las firmas
        List<string> names = fields.GetSignatureNames();

        //  Recorrer los nombres de las firmas
        foreach (string name in names)
        {
            //  Obtener el objeto PdfPKCS7 para la firma
            PdfPKCS7 pkcs7 = fields.VerifySignature(name);

            //  Verificar la firma
            if (pkcs7.Verify())
            {
                isValid = true;
            }
            else
            {
                isValid = false;
            }
        }

        reader.Close();
    }
    catch (Exception ex)
    {
        //  Manejar excepción
        isValid = false;
    }

    return isValid;
}
Public Shared Function VerifyPdfDigitalSignature(ByVal filePath As String) As Boolean
	Dim isValid As Boolean = False

	Try
		'  Crear un objeto PdfReader
		Dim reader As New PdfReader(filePath)

		'  Obtener los AcroFields del documento PDF
		Dim fields As AcroFields = reader.AcroFields

		'  Obtener los nombres de las firmas
		Dim names As List(Of String) = fields.GetSignatureNames()

		'  Recorrer los nombres de las firmas
		For Each name As String In names
			'  Obtener el objeto PdfPKCS7 para la firma
			Dim pkcs7 As PdfPKCS7 = fields.VerifySignature(name)

			'  Verificar la firma
			If pkcs7.Verify() Then
				isValid = True
			Else
				isValid = False
			End If
		Next name

		reader.Close()
	Catch ex As Exception
		'  Manejar excepción
		isValid = False
	End Try

	Return isValid
End Function
VB   C#

En el código anterior, la función VerifyPdfDigitalSignature toma la ruta del documento PDF como parámetro y devuelve un valor booleano que indica si la firma digital es válida o no.

Tenga en cuenta que la función verifica todas las firmas del documento PDF. Si sólo desea verificar una firma específica, puede pasar el nombre de la firma como parámetro al método VerifySignature.

Verificación de firmas digitales mediante la biblioteca IronPDF

Si tiene un documento PDF que contiene una o varias firmas digitales, puede utilizar IronPDF para verificar la firma y asegurarse de que el documento no ha sido manipulado. Así es como puede hacerlo utilizando el método VerifyPdfSignatures de IronPDF:

  1. Cargar el documento PDF En primer lugar, debe cargar el documento PDF utilizando el método PdfDocument.FromFile de IronPDF. Este método toma la ruta del archivo como parámetro y devuelve un objeto PdfDocument que representa el documento PDF.
    PdfDocument pdf = PdfDocument.FromFile("annual_census.pdf");  
    PdfDocument pdf = PdfDocument.FromFile("annual_census.pdf");  
Dim pdf As PdfDocument = PdfDocument.FromFile("annual_census.pdf")
VB   C#
  1. Verificar las firmas Una vez que tengas el objeto PdfDocument, puedes llamar al método VerifyPdfSignatures para verificar todas las firmas del documento. Este método devuelve un valor booleano que indica si todas las firmas son válidas o no.
    bool isValid = pdf.VerifyPdfSignatures();  
    bool isValid = pdf.VerifyPdfSignatures();  
Dim isValid As Boolean = pdf.VerifyPdfSignatures()
VB   C#
  1. Manejar el resultado El método VerifyPdfSignatures devuelve un valor booleano que indica si todas las firmas del documento son válidas o no. Si el valor es verdadero, significa que todas las firmas son válidas y que el documento no ha sido manipulado. Si el valor es falso, significa que una o más firmas no son válidas y que el documento puede haber sido manipulado.

    Puede utilizar esta información para tomar las medidas oportunas, como mostrar un mensaje al usuario o impedir que se siga procesando el documento.

    Aquí está el fragmento de código completo que muestra cómo verificar todas las firmas en un documento PDF utilizando IronPDF:

using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("annual_census.pdf");
bool isValid = pdf.VerifyPdfSignatures();

if (isValid)
{
    Console.WriteLine("All signatures are valid");
}
else
{
    Console.WriteLine("One or more signatures are invalid");
}
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("annual_census.pdf");
bool isValid = pdf.VerifyPdfSignatures();

if (isValid)
{
    Console.WriteLine("All signatures are valid");
}
else
{
    Console.WriteLine("One or more signatures are invalid");
}
Imports IronPdf

Private pdf As PdfDocument = PdfDocument.FromFile("annual_census.pdf")
Private isValid As Boolean = pdf.VerifyPdfSignatures()

If isValid Then
	Console.WriteLine("All signatures are valid")
Else
	Console.WriteLine("One or more signatures are invalid")
End If
VB   C#

Licencias y precios

Las bibliotecas iTextSharp e IronPDF tienen licencias y modelos de precios diferentes, lo que puede ser un factor a tener en cuenta a la hora de elegir entre ellas para su proyecto.

iTextSharp está licenciado bajo la Affero General Public License (AGPL)que es una licencia copyleft que requiere que cualquier software que utilice iTextSharp esté también licenciado bajo la AGPL.

Sin embargo, también hay licencias comerciales disponibles para iTextSharp, que permiten a los desarrolladores utilizar la biblioteca en software propietario sin tener que liberar su código fuente.

El precio de las licencias comerciales de iTextSharp varía en función del número de desarrolladores e instancias de implantación.

Por otro lado, IronPDF es una biblioteca comercial que requiere una licencia de pago para su uso. El precio de IronPDF se basa en el número de desarrolladores e instancias de despliegue, de forma similar a iTextSharp.

Sin embargo, IronPDF también ofrece a los usuarios un versión de prueba gratuita con funcionalidad limitada que puede utilizarse para proyectos no comerciales.

En términos de precios IronPDF puede ser una mejor opción para proyectos pequeños o con presupuestos limitados, ya que la versión de prueba gratuita ofrece algunas funciones sin coste alguno.

Sin embargo, para proyectos de mayor envergadura o con requisitos de licencia específicos, iTextSharp puede ser una mejor opción debido a su modelo de licencia dual y su compatibilidad con la AGPL.

Conclusión

IronPDF e iTextSharp son dos populares bibliotecas para trabajar con archivos PDF en C#. Aunque ambas bibliotecas ofrecen funciones similares para trabajar con documentos PDF, existen algunas diferencias entre ellas que los desarrolladores deben tener en cuenta a la hora de elegir qué biblioteca utilizar.

Desde un punto de vista técnico, IronPDF es una moderna biblioteca .NET que ofrece una API sencilla e intuitiva para trabajar con archivos PDF. Admite una amplia gama de funciones PDF, como texto, imágenes, formularios y firmas digitales. IronPDF también ofrece funciones avanzadas como la conversión de HTML a PDF y la edición de PDF.

Por otro lado, iTextSharp es una biblioteca PDF madura con una API más compleja que puede requerir un mayor esfuerzo de aprendizaje. Sin embargo, iTextSharp ofrece funciones avanzadas, como la manipulación de PDF a bajo nivel y la compatibilidad con una amplia gama de estándares PDF.

En cuanto a las licencias, IronPDF ofrece un sencillo modelo de licencia comercial que permite a los desarrolladores utilizar la biblioteca en software propietario sin tener que liberar su código fuente. Esto facilita a los desarrolladores el uso de IronPDF en proyectos comerciales sin preocuparse por el cumplimiento de la licencia. iTextSharp, por su parte, ofrece un modelo de licencia dual con una licencia AGPL libre y una licencia comercial para software propietario. Aunque esto da a los desarrolladores más flexibilidad, también puede ser más complicado de navegar.

Desde un punto de vista técnico, IronPDF ofrece una API más moderna e intuitiva que puede resultar más fácil de utilizar para los desarrolladores. Además, IronPDF ofrece funciones avanzadas como la conversión de HTML a PDF y la edición de PDF, que pueden ser útiles para determinados proyectos. Sin embargo, iTextSharp ofrece funciones más avanzadas, como la manipulación de PDF a bajo nivel y la compatibilidad con una amplia gama de estándares PDF.

IronPDF está a disposición de los usuarios por un prueba gratuita y puede ser con licencia para uso comercial con su paquete Lite a partir de sólo 499 dólares.

Por último, IronPDF ofrece una promoción especial en la que los desarrolladores pueden adquirir los 6 productos de Iron Software por el precio de dos Iron Software productos. Esto puede proporcionar a los desarrolladores acceso a una amplia gama de potentes bibliotecas .NET a un precio asequible.

< ANTERIOR
Comparación entre Wkhtmltopdf en Windows e IronPDF
SIGUIENTE >
Comparación entre IronPDF y ExpertPDF para .NET

¿Listo para empezar? Versión: 2024.6 recién publicada

Comenzar prueba gratuita Descargas totales: 9,661,997
Ver licencias >