Cómo Firmar Archivos PDF en C# Usando IronPDF | Tutorial de IronPDF

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

Esta completa guía muestra a los desarrolladores de C# cómo firmar digitalmente archivos PDF con IronPDF, e incluye firmas basadas en certificados, sellos visuales y campos de formulario interactivos para garantizar la autenticidad y la seguridad de los documentos.

Agregar una firma a un documento PDF es un requisito común en muchas aplicaciones, pero "firmar" puede significar diferentes cosas. Para algunos, se trata de aplicar una firma digital a prueba de manipulaciones usando un certificado de seguridad. Para otros, podría ser estampar una imagen de firma manuscrita visual en un documento o agregar un campo de formulario interactivo para que los usuarios firmen electrónicamente.

Esta guía proporciona un recorrido completo para que los desarrolladores de C# logren todas estas tareas usando la biblioteca IronPDF for .NET. Cubriremos todo, desde la aplicación de una firma digital segura X509Certificate2 hasta la estampación de firmas gráficas y la creación de campos de firma interactivos, garantizando que sus documentos PDF sean auténticos, seguros y profesionales.

Inicio rápido: Firme digitalmente un PDF sin esfuerzo con IronPDF

Comienza rápidamente con IronPDF para firmar digitalmente tus documentos PDF utilizando un proceso simple y directo. Este ejemplo demuestra cómo usar un certificado .pfx para autenticar y firmar un archivo PDF, asegurando la integridad y autenticidad del documento. Siga estos pasos para integrar perfectamente la firma digital en su aplicación.

  1. Instala IronPDF con el Administrador de Paquetes NuGet

    PM > Install-Package IronPdf
  2. Copie y ejecute este fragmento de código.

    new IronPdf.Signing.PdfSignature("certificate.pfx", "password").SignPdfFile("input.pdf");
  3. Despliegue para probar en su entorno real

    Comienza a usar IronPDF en tu proyecto hoy mismo con una prueba gratuita

    arrow pointer

¿Cómo aplicar una firma digital a un PDF con un certificado?

Puede aplicar una firma digital a un documento PDF utilizando un archivo de certificado digital (como .pfx o .p12) para garantizar la autenticidad e integridad del documento. Este proceso asegura que el documento no haya sido alterado desde que fue firmado. Para obtener una visión completa de las funciones de firma digital, consulte nuestra guía completa sobre firmas digitales.

IronPDF proporciona una API sencilla para este propósito, admitiendo múltiples formas de aplicar una firma digital. El núcleo de esta funcionalidad gira en torno a la clase PdfSignature, que encapsula el certificado y todos los metadatos asociados para la firma.

Método de firma Descripción
`Sign` Firma un PDF con un objeto `PdfSignature` que tú creas y configuras.
`SignWithFile` Firma un PDF utilizando un archivo de certificado de firma digital (`.pfx` o `.p12`) ubicado en el disco.
`SignWithStore` Firma un PDF con una firma digital del almacén de certificados de tu ordenador, identificada por su **identificador de huella digital**.

Usando un objeto X509Certificate2

Para un control máximo, puede crear un objeto X509Certificate2 a partir de su archivo de certificado. IronPDF cumple plenamente con el estándar X509Certificate2, lo que proporciona un método robusto y seguro para la implementación de firmas digitales. Al crear el objeto de certificado, asegúrese de que X509KeyStorageFlags esté configurado como Exportable, ya que así lo requieren las API criptográficas subyacentes. Consulte ejemplos prácticos de firmas digitales en nuestro repositorio de código.

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

El código anterior primero genera un PDF simple. Luego carga un archivo de certificado .pfx en un objeto X509Certificate2. Este objeto, que representa la identidad digital, se pasa al constructor PdfSignature. Finalmente, el método pdf.Sign aplica esta firma al documento antes de guardarlo. For more information on the X509Certificate2 class, you can refer to the official Microsoft documentation.

Añadir detalles detallados a una firma digital

Una firma digital puede contener más que solo el certificado; puedes incrustar metadatos enriquecidos para proporcionar contexto sobre la firma. Esto incluye la ubicación de la firma, el motivo, la información de contacto y una marca de tiempo segura de una autoridad de confianza. También puede establecer y editar metadatos para obtener propiedades adicionales del documento.

Agregar estos detalles mejora la pista de auditoría del documento y proporciona a los verificadores información valiosa. IronPDF también admite servidores de marca de tiempo que utilizan algoritmos hash modernos SHA256 y SHA512.

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

Puedes notar un icono de advertencia en algunos visores de PDF si el certificado de firma no está en el almacén de confianza del sistema. Para obtener una marca de verificación verde, el certificado debe agregarse a las identidades de confianza del visor.

¿Cómo puedo añadir una representación visual a una firma digital?

Si bien una firma digital se incrusta criptográficamente en el PDF, a menudo es útil tener una representación visual en la página. Esto puede ser un logotipo de la empresa, una imagen de firma manuscrita u otros gráficos. IronPDF facilita la adición de una imagen a un objeto PdfSignature.

Puedes cargar una imagen desde un archivo o una secuencia y posicionarla con precisión en cualquier página del PDF. Los formatos de imagen compatibles son PNG, JPEG, GIF, BMP, TIFF y WebP. Esta técnica es similar a la de estampar texto e imágenes en documentos 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");
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

Este código muestra tres formas equivalentes de agregar un componente visual a una firma digital. Ya sea que tengas una imagen en el disco o en la memoria, puedes estamparla fácilmente en el PDF como parte del proceso de firma. Esto cierra la brecha entre la seguridad criptográfica invisible y la aprobación visible del documento.

¿Cómo puedo controlar los permisos de los documentos después de firmarlos?

Cuando firmas un documento, es posible que desees especificar qué cambios, si los hay, están permitidos después. Por ejemplo, es posible que desees bloquear el documento por completo o solo permitir que los usuarios llenen campos de formulario. IronPDF le permite establecer estos permisos mediante la enumeración SignaturePermissions. Para un control de permisos más avanzado, consulte nuestra guía sobre configuración de contraseñas y permisos de PDF.

Establecer permisos de firma es una parte clave del manejo del ciclo de vida de un documento. Asegura que la integridad del documento se mantenga según tus reglas después de que se aplique tu firma. Si un usuario realiza una acción no permitida, la firma se invalidará.

`SignaturePermissions` Miembro Definición
`NoChangesAllowed` No se permiten cambios de ningún tipo. El documento está efectivamente bloqueado.
`FormFillingAllowed` Sólo se permite rellenar campos de formularios existentes y firmar.
`AnnotationsAndFormFillingAllowed` Permite rellenar formularios, firmar y crear o modificar anotaciones.

Guardar y firmar una revisión específica de PDF

Los PDFs pueden almacenar un historial de cambios, similar a un sistema de control de versiones. Esto se conoce como guardado incremental. Cuando firmas un PDF, la firma se aplica a una revisión específica del documento. Esto es crucial para flujos de trabajo donde un documento pasa por múltiples etapas de aprobación. Obtenga más información sobre cómo gestionar el historial de revisiones de PDF en nuestra guía detallada.

En el siguiente ejemplo, cargamos un PDF, hacemos ediciones y luego firmamos la revisión actual permitiendo solo el llenado de formularios como cambio futuro. Utilizamos SaveAsRevision para guardar el estado actual en el historial del documento antes de guardar el archivo.

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

Entender los guardados incrementales es clave para flujos de trabajo avanzados de PDF. Mientras que un visor simple podría mostrar solo la última versión, una herramienta como Adobe Acrobat puede revelar todo el historial de revisiones, mostrando quién firmó qué versión y qué cambios se realizaron entre las firmas. IronPDF te da control programático completo sobre este proceso.

Para empresas que manejan flujos de trabajo de documentos complejos que requieren alta seguridad y conformidad, puede ser necesaria una solución completa. Iron Software ofrece Iron Suite, que incluye IronPDF para firma y manipulación, además de otras bibliotecas para una amplia gama de tareas de procesamiento de documentos, disponibles por un solo pago único.

¿Cómo puedo gestionar y verificar las firmas en las revisiones?

Un documento PDF puede tener múltiples firmas aplicadas a través de sus diversas revisiones. IronPDF proporciona herramientas para gestionar eficazmente este historial.

  • Volver a una revisión anterior: puede revertir un documento a un estado anterior utilizando el método GetRevision. Esto descartará todos los cambios y firmas realizados después de esa revisión.
  • Verificar todas las firmas: El método VerifySignatures comprueba la validez de todas las firmas en todas las revisiones del documento. Solo devuelve true si todas las firmas son válidas y no se han realizado cambios no autorizados.
  • Eliminar firmas: El método RemoveSignatures eliminará todas las firmas digitales de cada revisión del documento, creando una versión limpia y sin firmar.
// 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

¿Cómo puedo estampar una firma manuscrita en un PDF?

A veces, no necesitas la seguridad criptográfica de una firma digital, sino simplemente aplicar una firma electrónica visual, como una firma manuscrita escaneada. Esto se conoce comúnmente como estampado. IronPDF puede hacerlo utilizando sus funciones Watermark o Stamp. Para opciones de marcas de agua más avanzadas, consulte nuestra guía de marcas de agua personalizadas.

Comencemos con una factura PDF de muestra y una imagen .png de una firma manuscrita.

El PDF de factura original antes de estampar una firma.

Aquí está la imagen de firma que aplicaremos:

Muestra de firma manuscrita con la palabra Una imagen de firma manuscrita de muestra.

El siguiente código utiliza la propiedad Watermark para estampar esta imagen en la esquina inferior derecha del 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");
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

¿Cómo es el resultado del PDF sellado?

Después de ejecutar el código, la imagen de la firma se estampa en el documento, creando una factura visualmente firmada.

El PDF final con la imagen de la firma manuscrita estampada en la esquina inferior derecha.

¿Cómo puedo añadir un campo de firma interactivo a un PDF?

Para documentos que necesitan ser firmados por un usuario final en un visor de PDF como Adobe Acrobat, puedes agregar un campo de formulario de firma interactivo. Esto crea un área vacía, clicable, que le indica al usuario que aplique su propia firma digital. Para obtener una guía completa sobre formularios PDF, consulte nuestro tutorial sobre la creación de formularios PDF.

Puede crear un SignatureFormField y añadirlo a la colección de formularios del PDF. Tienes control preciso sobre su ubicación y tamaño en la página. Esto resulta especialmente útil para documentos que requieren múltiples firmas o cuando es necesario recabar firmas de terceros.

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

Cuando un usuario abre este PDF, verá un campo clicable, permitiéndole completar el proceso de firma utilizando su propia identificación digital. Puedes aprender más sobre la creación y gestión de formularios interactivos en nuestro Guía de Cómo crear formularios PDF.

Editor de PDF que muestra un campo de firma sin firmar con el mensaje Un campo de firma interactivo y no firmado agregado programáticamente a un documento PDF.

¿Cómo puedo recuperar el nombre del firmante de las firmas verificadas?

Para obtener el nombre común del propietario del certificado que firmó una firma, podemos utilizar la clase VerifiedSignature para acceder a la propiedad SignerName. A continuación se muestra un fragmento de código que demuestra cómo lograr esto.

: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

Después de importar el archivo PDF firmado, utilizamos el método GetVerifiedSignatures para recuperar una lista de objetos VerifiedSignature dentro del informe e imprimir el SignerName para cada firma.

Tenga en cuenta que este valor se extrae del nombre distintivo del sujeto (SubjectDN) del certificado y devolverá un valor nulo si el campo CN no está presente.

¿Cuáles son los siguientes pasos para firmar PDF con IronPDF?

Esta guía ha demostrado las capacidades poderosas y flexibles de firma de PDF de IronPDF. Ya sea que necesites aplicar firmas digitales seguras con metadatos detallados, gestionar revisiones de documentos, estampar firmas visuales o crear formularios interactivos, IronPDF proporciona una API completa y amigable para el desarrollador para hacer el trabajo.

Para continuar explorando, puedes descargar la biblioteca IronPDF for .NET y obtener una licencia de prueba gratuita para probar todas sus características en tus proyectos. Para conocer técnicas más avanzadas de manipulación de documentos, como añadir anotaciones y trabajar con campos de formulario, consulte nuestra amplia documentación y tutoriales.

¿Listo para ver qué más puedes hacer? Consulta nuestra página de tutorial aquí: Firmar y Asegurar PDFs

Preguntas Frecuentes

¿Cómo firmo digitalmente un PDF utilizando un certificado en C#?

Con IronPDF, puede firmar digitalmente un PDF en una sola línea de código utilizando la clase PdfSignature. Basta con crear un nuevo objeto PdfSignature con el archivo de certificado (.pfx o .p12) y la contraseña y, a continuación, llamar al método SignPdfFile(). Por ejemplo: new IronPdf.Signing.PdfSignature("certificado.pfx", "contraseña").SignPdfFile("entrada.pdf"). Esto aplica una firma digital a prueba de manipulaciones utilizando su X509Certificate2 para garantizar la autenticidad del documento.

¿Qué tipos de firmas PDF son compatibles?

IronPDF admite tres tipos principales de firmas PDF: 1) Firmas digitales que utilizan certificados X509Certificate2 para la autenticación y a prueba de manipulaciones, 2) Sellos de firma visuales que añaden imágenes de firmas gráficas o manuscritas a los documentos, y 3) Campos de formulario de firma interactivos que permiten a los usuarios firmar electrónicamente los PDF. Cada tipo sirve para fines distintos en cuanto a la seguridad de los documentos y los requisitos del flujo de trabajo.

¿Qué formatos de certificado pueden utilizarse para la firma digital?

IronPDF admite los formatos de certificado digital más comunes, incluidos los archivos .pfx (Personal Information Exchange) y .p12. Estos archivos de certificado contienen tanto la clave pública como la clave privada necesarias para la firma digital. La clase PdfSignature de IronPDF puede trabajar con cualquier objeto X509Certificate2, lo que proporciona flexibilidad a la hora de cargar y gestionar los certificados de firma.

¿Puedo añadir una representación visual a mi firma digital?

Sí, IronPDF le permite añadir elementos visuales a sus firmas digitales. Puede incluir una representación gráfica, como una imagen de firma manuscrita, el logotipo de la empresa o un sello personalizado, junto a la firma criptográfica. Esto combina la seguridad de los certificados digitales con la confirmación visual, haciendo que los documentos firmados sean tanto seguros como profesionalmente presentables.

¿Cómo puedo crear un campo de firma interactivo para que los usuarios firmen electrónicamente?

IronPDF permite añadir campos de formulario de firma interactivos a documentos PDF. Estos campos permiten a los usuarios firmar documentos electrónicamente haciendo clic y dibujando su firma o cargando una imagen de firma. Esta función es perfecta para crear documentos que requieran recogida de firmas, como contratos o formularios que deban ser firmados por varias partes.

¿La firma de un PDF garantiza la integridad del documento?

Sí, cuando se firma digitalmente un PDF utilizando IronPDF con un X509Certificate2, se crea un sello a prueba de manipulaciones que garantiza la integridad del documento. La firma digital garantiza que el documento no ha sido alterado desde que se firmó. Cualquier modificación del PDF después de la firma invalidará la firma, alertando a los destinatarios de que el documento puede haber sido comprometido.

Jacob Mellor, Director de Tecnología @ Team Iron
Director de Tecnología

Jacob Mellor es Director de Tecnología de Iron Software y un ingeniero visionario pionero en la tecnología C# PDF. Como desarrollador original de la base de código principal de Iron Software, ha dado forma a la arquitectura de productos de la empresa desde su creación, ...

Leer más
Revisado por
Jeff Fritz
Jeffrey T. Fritz
Gerente Principal de Programas - Equipo de la Comunidad .NET
Jeff también es Gerente Principal de Programas para los equipos de .NET y Visual Studio. Es el productor ejecutivo de la serie de conferencias virtuales .NET Conf y anfitrión de 'Fritz and Friends', una transmisión en vivo para desarrolladores que se emite dos veces a la semana donde habla sobre tecnología y escribe código junto con la audiencia. Jeff escribe talleres, presentaciones, y planifica contenido para los eventos de desarrolladores más importantes de Microsoft, incluyendo Microsoft Build, Microsoft Ignite, .NET Conf y la Cumbre de Microsoft MVP.
¿Listo para empezar?
Nuget Descargas 17,803,474 | Versión: 2026.3 recién lanzado
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida? PM > Install-Package IronPdf
ejecutar una muestra Mira cómo tu HTML se convierte en PDF.