Cómo establecer y editar metadatos de PDF en C#

Cómo establecer y editar metadatos PDF en C# con IronPDF

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

IronPDF permite a los desarrolladores establecer y editar mediante programación metadatos PDF en aplicaciones C#, incluidas propiedades estándar como título, autor y palabras clave, así como campos de metadatos personalizados para mejorar la organización y la capacidad de búsqueda de documentos. Tanto si está creando aplicaciones empresariales que requieren el seguimiento de documentos, implementando funciones de cumplimiento u organizando su biblioteca de PDF, IronPDF proporciona funciones completas de manipulación de metadatos. Esta funcionalidad se integra perfectamente con la conversión de HTML a PDF de IronPDF y otras características de procesamiento de documentos.

Inicio rápido: Modificar metadatos PDF al instante

Gestione los metadatos PDF mediante IronPDF con sólo unas líneas de código. Cargue su PDF, actualice metadatos como el título, el autor o las palabras clave y guarde los cambios. Esta guía simplifica la configuración y edición de metadatos, asegurando que tus documentos estén bien organizados y sean buscables. Mejora las capacidades de tu PDF siguiendo este enfoque sencillo.

  1. Instala IronPDF con el Administrador de Paquetes NuGet

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

    IronPdf.PdfDocument.FromFile("example.pdf")
        .MetaData = new IronPdf.PdfMetaData { 
            Title="MyDoc", Author="Me", Subject="Demo", Keywords="ironpdf,metadata", Creator="MyApp", Producer="IronPDF", CreationDate=DateTime.Today, ModifiedDate=DateTime.Now 
        }
        .SaveAs("updated_example.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 configurar y editar metadatos de PDF?

Cuando se utiliza IronPDF, la configuración y edición de campos de metadatos genéricos en PDF es sencilla. Acceda a la propiedad MetaData para modificar los campos de metadatos disponibles. Esta funcionalidad es especialmente útil cuando se trabaja con formularios PDF, firmas digitales, o al implementar sistemas de gestión documental.

:path=/static-assets/pdf/content-code-examples/how-to/metadata-set-edit.cs
using IronPdf;
using System;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Metadata</h1>");

// Access the MetaData class and set the pre-defined metadata properties.
pdf.MetaData.Author = "Iron Software";
pdf.MetaData.CreationDate = DateTime.Today;
pdf.MetaData.Creator = "IronPDF";
pdf.MetaData.Keywords = "ironsoftware,ironpdf,pdf";
pdf.MetaData.ModifiedDate = DateTime.Now;
pdf.MetaData.Producer = "IronPDF";
pdf.MetaData.Subject = "Metadata Tutorial";
pdf.MetaData.Title = "IronPDF Metadata Tutorial";

pdf.SaveAs("pdf-with-metadata.pdf");
Imports IronPdf
Imports System

Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Metadata</h1>")

' Access the MetaData class and set the pre-defined metadata properties.
pdf.MetaData.Author = "Iron Software"
pdf.MetaData.CreationDate = DateTime.Today
pdf.MetaData.Creator = "IronPDF"
pdf.MetaData.Keywords = "ironsoftware,ironpdf,pdf"
pdf.MetaData.ModifiedDate = DateTime.Now
pdf.MetaData.Producer = "IronPDF"
pdf.MetaData.Subject = "Metadata Tutorial"
pdf.MetaData.Title = "IronPDF Metadata Tutorial"

pdf.SaveAs("pdf-with-metadata.pdf")
$vbLabelText   $csharpLabel

¿Cómo puedo ver los metadatos en el PDF de salida?

Para ver los metadatos del documento, haga clic en los tres puntos verticales y acceda a Propiedades del documento. Estos metadatos son fundamentales para la organización de documentos, especialmente al implementar documentos conformes a PDF/A para archivado a largo plazo.

¿Cómo configuro y recupero el diccionario de metadatos?

El método GetMetaDataDictionary recupera el diccionario de metadatos existente y accede a la información de metadatos almacenada dentro del documento. El método SetMetaDataDictionary proporciona una forma efectiva de reescribir el diccionario de metadatos. Si una clave no está presente en los campos de metadatos genéricos, se convierte en una propiedad de metadatos personalizada. Este enfoque es especialmente útil cuando se trabaja con la combinación de múltiples archivos PDF y la consolidación de metadatos de distintas fuentes.

:path=/static-assets/pdf/content-code-examples/how-to/metadata-set-and-get-metadata-dictionary.cs
using IronPdf;
using System.Collections.Generic;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Metadata</h1>");

Dictionary<string, string> newMetadata = new Dictionary<string, string>();
newMetadata.Add("Title", "How to article");
newMetadata.Add("Author", "IronPDF");

// Set metadata dictionary
pdf.MetaData.SetMetaDataDictionary(newMetadata);

// Retreive metadata dictionary
Dictionary<string, string> metadataProperties = pdf.MetaData.GetMetaDataDictionary();
Imports IronPdf
Imports System.Collections.Generic

Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Metadata</h1>")

Dim newMetadata As New Dictionary(Of String, String)()
newMetadata.Add("Title", "How to article")
newMetadata.Add("Author", "IronPDF")

' Set metadata dictionary
pdf.MetaData.SetMetaDataDictionary(newMetadata)

' Retrieve metadata dictionary
Dim metadataProperties As Dictionary(Of String, String) = pdf.MetaData.GetMetaDataDictionary()
$vbLabelText   $csharpLabel

¿Qué ocurre cuando utilizo el diccionario de metadatos?

Para ver los metadatos del documento, haga clic en los tres puntos verticales y acceda a Propiedades del documento. El enfoque de diccionario de metadatos es especialmente útil cuando se implementan flujos de trabajo de procesamiento por lotes o se estandarizan metadatos en varios documentos. Para escenarios avanzados de gestión documental, considere combinar esto con técnicas de compresión de PDF para optimizar el almacenamiento de archivos.

Trabajar con metadatos en diferentes contextos

En el desarrollo de aplicaciones empresariales, los metadatos desempeñan un papel crucial en la clasificación y recuperación de documentos. He aquí un ejemplo de implementación de un sistema integral de gestión de metadatos:

using IronPdf;
using System;
using System.Collections.Generic;

public class PDFMetadataManager
{
    public static void ProcessBatchMetadata(List<string> pdfPaths)
    {
        foreach (string path in pdfPaths)
        {
            var pdf = PdfDocument.FromFile(path);

            // Standardize metadata across all documents
            pdf.MetaData.Producer = "Company Document System v2.0";
            pdf.MetaData.Creator = "IronPDF";

            // Add processing timestamp
            pdf.MetaData.ModifiedDate = DateTime.Now;

            // Add document classification
            var metadata = pdf.MetaData.GetMetaDataDictionary();
            metadata["DocumentType"] = "Internal Report";
            metadata["Department"] = "Finance";
            metadata["SecurityLevel"] = "Confidential";

            pdf.MetaData.SetMetaDataDictionary(metadata);
            pdf.SaveAs(path.Replace(".pdf", "_processed.pdf"));
        }
    }
}
using IronPdf;
using System;
using System.Collections.Generic;

public class PDFMetadataManager
{
    public static void ProcessBatchMetadata(List<string> pdfPaths)
    {
        foreach (string path in pdfPaths)
        {
            var pdf = PdfDocument.FromFile(path);

            // Standardize metadata across all documents
            pdf.MetaData.Producer = "Company Document System v2.0";
            pdf.MetaData.Creator = "IronPDF";

            // Add processing timestamp
            pdf.MetaData.ModifiedDate = DateTime.Now;

            // Add document classification
            var metadata = pdf.MetaData.GetMetaDataDictionary();
            metadata["DocumentType"] = "Internal Report";
            metadata["Department"] = "Finance";
            metadata["SecurityLevel"] = "Confidential";

            pdf.MetaData.SetMetaDataDictionary(metadata);
            pdf.SaveAs(path.Replace(".pdf", "_processed.pdf"));
        }
    }
}
Imports IronPdf
Imports System
Imports System.Collections.Generic

Public Class PDFMetadataManager
    Public Shared Sub ProcessBatchMetadata(pdfPaths As List(Of String))
        For Each path As String In pdfPaths
            Dim pdf = PdfDocument.FromFile(path)

            ' Standardize metadata across all documents
            pdf.MetaData.Producer = "Company Document System v2.0"
            pdf.MetaData.Creator = "IronPDF"

            ' Add processing timestamp
            pdf.MetaData.ModifiedDate = DateTime.Now

            ' Add document classification
            Dim metadata = pdf.MetaData.GetMetaDataDictionary()
            metadata("DocumentType") = "Internal Report"
            metadata("Department") = "Finance"
            metadata("SecurityLevel") = "Confidential"

            pdf.MetaData.SetMetaDataDictionary(metadata)
            pdf.SaveAs(path.Replace(".pdf", "_processed.pdf"))
        Next
    End Sub
End Class
$vbLabelText   $csharpLabel

¿Cómo puedo añadir, editar y eliminar metadatos personalizados?

Además de los metadatos estándar de un documento PDF, puede incluir propiedades de metadatos personalizadas. Estas propiedades personalizadas a menudo no son visibles en el software de visualización de PDF, ya que normalmente sólo muestran metadatos genéricos y pueden no recuperar todas las propiedades de metadatos existentes. Los metadatos personalizados son especialmente valiosos al implementar funciones de seguridad de PDF o al crear flujos de trabajo de documentos especializados.

¿Cómo añado y edito propiedades de metadatos personalizadas?

Para agregar metadatos personalizados, acceda a la propiedad CustomProperties e invoque el método Add. Editar los metadatos personalizados requiere pasar el valor clave a la propiedad CustomProperties y reasignar su valor. Esta funcionalidad se integra bien con escenarios de edición de formularios PDF donde podría necesitar hacer seguimiento de los metadatos de envío de formularios.

:path=/static-assets/pdf/content-code-examples/how-to/metadata-custom-properties.cs
using IronPdf;
using IronPdf.MetaData;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Metadata</h1>");

PdfCustomMetadataProperties customProperties = pdf.MetaData.CustomProperties;

// Add custom property
customProperties.Add("foo", "bar"); // Key: foo, Value: bar

// Edit custom property
customProperties["foo"] = "baz";
Imports IronPdf
Imports IronPdf.MetaData

Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Metadata</h1>")

Dim customProperties As PdfCustomMetadataProperties = pdf.MetaData.CustomProperties

' Add custom property
customProperties.Add("foo", "bar") ' Key: foo, Value: bar

' Edit custom property
customProperties("foo") = "baz"
$vbLabelText   $csharpLabel

Escenarios avanzados de metadatos personalizados

Los metadatos personalizados resultan especialmente útiles a la hora de crear sistemas de gestión de documentos. He aquí un ejemplo exhaustivo que demuestra el uso en el mundo real:

using IronPdf;
using System;
using System.Linq;

public class DocumentTrackingSystem
{
    public static void AddTrackingMetadata(PdfDocument pdf, string userId, string projectId)
    {
        var customProps = pdf.MetaData.CustomProperties;

        // Add tracking information
        customProps.Add("ProcessedBy", userId);
        customProps.Add("ProcessedDate", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
        customProps.Add("ProjectID", projectId);
        customProps.Add("DocumentVersion", "1.0");
        customProps.Add("ReviewStatus", "Pending");

        // Add workflow metadata
        customProps.Add("WorkflowStep", "Initial Review");
        customProps.Add("NextReviewer", "John.Doe@company.com");
        customProps.Add("DueDate", DateTime.Now.AddDays(7).ToString("yyyy-MM-dd"));

        // Add compliance metadata
        customProps.Add("ComplianceChecked", "false");
        customProps.Add("RetentionPeriod", "7 years");
        customProps.Add("Classification", "Internal Use Only");
    }

    public static void UpdateReviewStatus(PdfDocument pdf, string status, string reviewer)
    {
        var customProps = pdf.MetaData.CustomProperties;

        // Update existing properties
        customProps["ReviewStatus"] = status;
        customProps["LastReviewedBy"] = reviewer;
        customProps["LastReviewDate"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

        // Increment version if approved
        if (status == "Approved" && customProps.ContainsKey("DocumentVersion"))
        {
            var currentVersion = customProps["DocumentVersion"];
            var versionParts = currentVersion.Split('.');
            var minorVersion = int.Parse(versionParts[1]) + 1;
            customProps["DocumentVersion"] = $"{versionParts[0]}.{minorVersion}";
        }
    }
}
using IronPdf;
using System;
using System.Linq;

public class DocumentTrackingSystem
{
    public static void AddTrackingMetadata(PdfDocument pdf, string userId, string projectId)
    {
        var customProps = pdf.MetaData.CustomProperties;

        // Add tracking information
        customProps.Add("ProcessedBy", userId);
        customProps.Add("ProcessedDate", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
        customProps.Add("ProjectID", projectId);
        customProps.Add("DocumentVersion", "1.0");
        customProps.Add("ReviewStatus", "Pending");

        // Add workflow metadata
        customProps.Add("WorkflowStep", "Initial Review");
        customProps.Add("NextReviewer", "John.Doe@company.com");
        customProps.Add("DueDate", DateTime.Now.AddDays(7).ToString("yyyy-MM-dd"));

        // Add compliance metadata
        customProps.Add("ComplianceChecked", "false");
        customProps.Add("RetentionPeriod", "7 years");
        customProps.Add("Classification", "Internal Use Only");
    }

    public static void UpdateReviewStatus(PdfDocument pdf, string status, string reviewer)
    {
        var customProps = pdf.MetaData.CustomProperties;

        // Update existing properties
        customProps["ReviewStatus"] = status;
        customProps["LastReviewedBy"] = reviewer;
        customProps["LastReviewDate"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

        // Increment version if approved
        if (status == "Approved" && customProps.ContainsKey("DocumentVersion"))
        {
            var currentVersion = customProps["DocumentVersion"];
            var versionParts = currentVersion.Split('.');
            var minorVersion = int.Parse(versionParts[1]) + 1;
            customProps["DocumentVersion"] = $"{versionParts[0]}.{minorVersion}";
        }
    }
}
Imports IronPdf
Imports System
Imports System.Linq

Public Class DocumentTrackingSystem
    Public Shared Sub AddTrackingMetadata(pdf As PdfDocument, userId As String, projectId As String)
        Dim customProps = pdf.MetaData.CustomProperties

        ' Add tracking information
        customProps.Add("ProcessedBy", userId)
        customProps.Add("ProcessedDate", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))
        customProps.Add("ProjectID", projectId)
        customProps.Add("DocumentVersion", "1.0")
        customProps.Add("ReviewStatus", "Pending")

        ' Add workflow metadata
        customProps.Add("WorkflowStep", "Initial Review")
        customProps.Add("NextReviewer", "John.Doe@company.com")
        customProps.Add("DueDate", DateTime.Now.AddDays(7).ToString("yyyy-MM-dd"))

        ' Add compliance metadata
        customProps.Add("ComplianceChecked", "false")
        customProps.Add("RetentionPeriod", "7 years")
        customProps.Add("Classification", "Internal Use Only")
    End Sub

    Public Shared Sub UpdateReviewStatus(pdf As PdfDocument, status As String, reviewer As String)
        Dim customProps = pdf.MetaData.CustomProperties

        ' Update existing properties
        customProps("ReviewStatus") = status
        customProps("LastReviewedBy") = reviewer
        customProps("LastReviewDate") = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")

        ' Increment version if approved
        If status = "Approved" AndAlso customProps.ContainsKey("DocumentVersion") Then
            Dim currentVersion = customProps("DocumentVersion")
            Dim versionParts = currentVersion.Split("."c)
            Dim minorVersion = Integer.Parse(versionParts(1)) + 1
            customProps("DocumentVersion") = $"{versionParts(0)}.{minorVersion}"
        End If
    End Sub
End Class
$vbLabelText   $csharpLabel

¿Cómo elimino las propiedades de metadatos personalizados?

Elimine metadatos personalizados de un documento PDF de dos maneras. Utilice el método RemoveMetaDataKey, accesible a través de la propiedad Metadata, o utilice el método Remove de la propiedad CustomProperties . Esto resulta especialmente útil al depurar PDFs para distribución pública o al preparar documentos para archivado.

:path=/static-assets/pdf/content-code-examples/how-to/metadata-remove-custom-properties.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Metadata</h1>");

// Add custom property to be deleted
pdf.MetaData.CustomProperties.Add("willBeDeleted", "value");

// Remove custom property _ two ways
pdf.MetaData.RemoveMetaDataKey("willBeDeleted");
pdf.MetaData.CustomProperties.Remove("willBeDeleted");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Metadata</h1>")

' Add custom property to be deleted
pdf.MetaData.CustomProperties.Add("willBeDeleted", "value")

' Remove custom property _ two ways
pdf.MetaData.RemoveMetaDataKey("willBeDeleted")
pdf.MetaData.CustomProperties.Remove("willBeDeleted")
$vbLabelText   $csharpLabel

Introducción

Los metadatos PDF son la columna vertebral de los sistemas de gestión de documentos, ya que permiten una organización eficaz, la posibilidad de realizar búsquedas y el seguimiento del cumplimiento de normativas. Las funciones de metadatos de IronPDF van más allá de la simple configuración de propiedades: proporcionan un marco completo para crear flujos de trabajo de documentos sofisticados. Ya sea implementando documentos conformes con PDF/UA para accesibilidad o creando sistemas de seguimiento personalizados, la gestión de metadatos es esencial.

Mejores prácticas para la gestión de metadatos

  1. Consistencia: Establecer convenciones de nomenclatura para las claves de metadatos personalizadas
  2. Documentación: Mantener un registro de campos de metadatos personalizados utilizados en su sistema
  3. Validación: Implementar reglas de validación antes de establecer valores de metadatos
  4. Seguridad: Evita almacenar información sensible en los metadatos a menos que el PDF esté encriptado
  5. Cumplimiento: Asegúrese de que los metadatos cumplen los requisitos normativos de su sector

Al aprovechar las capacidades de metadatos de IronPDF junto con funciones como firmas digitales y cifrado de PDF, puede crear soluciones robustas de gestión documental que satisfagan los requisitos empresariales.

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

Preguntas Frecuentes

¿Cómo establezco propiedades de metadatos PDF como título y autor en C#?

Con IronPDF, puede establecer fácilmente metadatos PDF accediendo a la propiedad MetaData de su documento PDF. Simplemente asigne un nuevo objeto PdfMetaData con propiedades como Título, Autor, Asunto, Palabras clave, Creador y fechas. IronPDF facilita la actualización de estos campos de metadatos estándar mediante programación.

¿Puedo añadir campos de metadatos personalizados a los PDF además de las propiedades estándar?

Sí, IronPDF admite campos de metadatos personalizados a través del diccionario de metadatos. Utilizando el método SetMetaDataDictionary, puede añadir cualquier par clave-valor más allá de los campos estándar. Si una clave no coincide con los campos de metadatos genéricos, IronPDF la trata automáticamente como metadatos personalizados.

¿Cómo puedo recuperar los metadatos existentes en un documento PDF?

IronPDF proporciona el método GetMetaDataDictionary para recuperar todos los metadatos existentes de un documento PDF. Este método devuelve un diccionario que contiene campos de metadatos estándar y personalizados, lo que permite acceder a la información de metadatos almacenada en el documento y procesarla.

¿Qué campos de metadatos estándar se pueden editar?

IronPDF admite todos los campos de metadatos PDF estándar, incluidos Título, Autor, Asunto, Palabras clave, Creador, Productor, Fecha de creación y Fecha de modificación. Estos campos pueden establecerse a través del objeto PdfMetaData y son esenciales para la organización y búsqueda de documentos.

¿Cómo puedo ver los metadatos después de configurarlos en el PDF?

Después de utilizar IronPDF para establecer los metadatos, puede visualizarlos en cualquier lector de PDF accediendo a las propiedades del documento. En la mayoría de los visores de PDF, haga clic en los tres puntos verticales o vaya al menú Archivo y seleccione Propiedades del documento para ver todos los campos de metadatos, incluidos los establecidos mediante programación.

¿Se puede combinar la manipulación de metadatos con otras operaciones de PDF?

Por supuesto IronPDF permite combinar la edición de metadatos con otras funciones como la conversión de HTML a PDF, la creación de formularios PDF y las firmas digitales. Esto lo hace ideal para crear sistemas completos de gestión de documentos o funciones de cumplimiento de normativas.

Jordi Bardia
Ingeniero de Software
Jordi es más competente en Python, C# y C++. Cuando no está aprovechando sus habilidades en Iron Software, está programando juegos. Compartiendo responsabilidades para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más
¿Listo para empezar?
Nuget Descargas 18,560,885 | Versión: 2026.4 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.