Como definir e editar metadados de PDF em C#

Como definir e editar metadados de PDF em C# com IronPDF

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

O IronPDF permite que os desenvolvedores definam e editem programaticamente metadados de PDF em aplicativos C#, incluindo propriedades padrão como título, autor e palavras-chave, bem como campos de metadados personalizados para melhor organização e capacidade de pesquisa do documento. Seja para criar aplicativos empresariais que exigem rastreamento de documentos, implementar recursos de conformidade ou organizar sua biblioteca de PDFs, o IronPDF oferece recursos abrangentes de manipulação de metadados. Essa funcionalidade se integra perfeitamente com a conversão de HTML para PDF do IronPDF e outros recursos de processamento de documentos.

Início Rápido: Modifique Metadados de PDF Instantaneamente

Gerencie metadados de PDF usando o IronPDF com apenas algumas linhas de código. Carregue seu PDF, atualize os metadados, como título, autor ou palavras-chave, e salve as alterações. Este guia simplifica a configuração e edição de metadados, garantindo que seus documentos estejam bem organizados e possam ser pesquisados. Aprimore suas funcionalidades em PDF seguindo esta abordagem simples.

  1. Instale IronPDF com o Gerenciador de Pacotes NuGet

    PM > Install-Package IronPdf
  2. Copie e execute este trecho 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. Implante para testar em seu ambiente de produção.

    Comece a usar IronPDF em seu projeto hoje com uma avaliação gratuita

    arrow pointer


Como faço para configurar e editar metadados de PDF?

Ao usar o IronPDF, definir e editar campos de metadados genéricos em PDFs é muito simples. Acesse a propriedade MetaData para modificar os campos de metadados disponíveis. Essa funcionalidade é especialmente útil ao trabalhar com formulários em PDF, assinatura digital ou na implementação de sistemas de gerenciamento de documentos.

: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

Como posso visualizar os metadados no PDF gerado?

Para visualizar os metadados do documento, clique nos três pontos verticais e acesse Propriedades do documento. Esses metadados são fundamentais para a organização dos documentos, especialmente ao implementar documentos em conformidade com PDF/A para arquivamento de longo prazo.

Como faço para configurar e recuperar o dicionário de metadados?

O método GetMetaDataDictionary recupera o dicionário de metadados existente e acessa as informações de metadados armazenadas no documento. O método SetMetaDataDictionary fornece uma maneira eficaz de reescrever o dicionário de metadados. Se uma chave não estiver presente nos campos de metadados genéricos, ela se torna uma propriedade de metadados personalizada. Essa abordagem é especialmente útil ao trabalhar com a mesclagem de vários PDFs e a consolidação de metadados de diferentes fontes.

: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

O que acontece quando eu uso o dicionário de metadados?

Para visualizar os metadados do documento, clique nos três pontos verticais e acesse Propriedades do documento. A abordagem de dicionário de metadados é especialmente útil na implementação de fluxos de trabalho de processamento em lote ou na padronização de metadados em vários documentos. Para cenários avançados de gerenciamento de documentos, considere combinar isso com técnicas de compressão de PDF para otimizar o armazenamento de arquivos.

Trabalhando com metadados em diferentes contextos

No desenvolvimento de aplicações empresariais, os metadados desempenham um papel crucial na classificação e recuperação de documentos. Eis um exemplo de implementação de um sistema abrangente de gerenciamento de metadados:

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

Como faço para adicionar, editar e remover metadados personalizados?

Além dos metadados padrão de um documento PDF, você pode incluir propriedades de metadados personalizadas. Essas propriedades personalizadas geralmente não são visíveis em softwares visualizadores de PDF, pois normalmente exibem apenas metadados genéricos e podem não recuperar todas as propriedades de metadados existentes. Custom metadata is particularly valuable when implementing PDF security features or creating specialized document workflows.

Como faço para adicionar e editar propriedades de metadados personalizadas?

Para adicionar metadados personalizados, acesse a propriedade CustomProperties e invoque o método Add. A edição de metadados personalizados requer a passagem do valor da chave para a propriedade CustomProperties e a reatribuição do seu valor. This functionality integrates well with PDF form editing scenarios where you might need to track form submission metadata.

: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

Cenários avançados de metadados personalizados

Os metadados personalizados tornam-se particularmente poderosos na construção de sistemas de gestão documental. Aqui está um exemplo completo que demonstra o uso no 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

Como faço para remover propriedades de metadados personalizadas?

Remova metadados personalizados de um documento PDF de duas maneiras. Use o método RemoveMetaDataKey, acessível através da propriedade Metadata, ou use o método Remove da propriedade CustomProperties . This is particularly useful when sanitizing PDFs for public distribution or preparing documents for archival.

: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

Introdução

Os metadados de PDF servem como a espinha dorsal dos sistemas de gerenciamento de documentos, permitindo organização eficiente, capacidade de busca e rastreamento de conformidade. Os recursos de metadados do IronPDF vão além da simples configuração de propriedades — eles fornecem uma estrutura abrangente para a criação de fluxos de trabalho de documentos sofisticados. Whether implementing PDF/UA compliant documents for accessibility or creating custom tracking systems, metadata management is essential.

Melhores práticas para gerenciamento de metadados

  1. Consistência : Estabeleça convenções de nomenclatura para chaves de metadados personalizadas.
  2. Documentação : Mantenha um registro dos campos de metadados personalizados usados ​​em seu sistema.
  3. Validação : Implemente regras de validação antes de definir os valores dos metadados.
  4. Segurança : Evite armazenar informações confidenciais em metadados, a menos que o PDF esteja criptografado.
  5. Conformidade : Garanta que os metadados atendam aos requisitos regulamentares do seu setor.

By leveraging IronPDF's metadata capabilities alongside features like digital signatures and PDF encryption, you can build robust document management solutions that meet enterprise requirements.

Pronto para ver o que mais você pode fazer? Confira nossa página de tutoriais aqui: Assinar e proteger PDFs

Perguntas frequentes

Como faço para definir propriedades de metadados de um PDF, como título e autor, em C#?

Com o IronPDF, você pode facilmente definir metadados de PDF acessando a propriedade MetaData do seu documento PDF. Basta atribuir um novo objeto PdfMetaData com propriedades como Título, Autor, Assunto, Palavras-chave, Criador e datas. O IronPDF facilita a atualização programática desses campos de metadados padrão.

Posso adicionar campos de metadados personalizados aos PDFs além das propriedades padrão?

Sim, o IronPDF suporta campos de metadados personalizados por meio do dicionário de metadados. Usando o método SetMetaDataDictionary, você pode adicionar quaisquer pares de chave-valor além dos campos padrão. Se uma chave não corresponder aos campos de metadados genéricos, o IronPDF a tratará automaticamente como metadado personalizado.

Como posso recuperar os metadados existentes de um documento PDF?

O IronPDF fornece o método GetMetaDataDictionary para recuperar todos os metadados existentes em um documento PDF. Esse método retorna um dicionário contendo campos de metadados padrão e personalizados, permitindo acessar e processar informações de metadados armazenadas no documento.

Quais campos de metadados padrão estão disponíveis para edição?

O IronPDF suporta todos os campos de metadados padrão de PDF, incluindo Título, Autor, Assunto, Palavras-chave, Criador, Produtor, Data de Criação e Data de Modificação. Esses campos podem ser definidos por meio do objeto PdfMetaData e são essenciais para a organização e a capacidade de busca do documento.

Como faço para visualizar os metadados depois de configurá-los no PDF?

Após usar o IronPDF para definir os metadados, você pode visualizá-los em qualquer leitor de PDF acessando as propriedades do documento. Na maioria dos visualizadores de PDF, clique nos três pontos verticais ou acesse o menu Arquivo e selecione Propriedades do Documento para ver todos os campos de metadados, incluindo aqueles definidos programaticamente.

É possível combinar a manipulação de metadados com outras operações em PDF?

Com certeza! O IronPDF permite combinar a edição de metadados com outros recursos, como conversão de HTML para PDF, criação de formulários em PDF e assinaturas digitais. Isso o torna ideal para a criação de sistemas abrangentes de gerenciamento de documentos ou recursos de conformidade.

Jordi Bardia
Engenheiro de Software
Jordi é extremamente proficiente em Python, C# e C++, e quando não está utilizando suas habilidades na Iron Software, dedica-se à programação de jogos. Compartilhando as responsabilidades por testes, desenvolvimento e pesquisa de produtos, Jordi agrega imenso valor à melhoria contínua dos produtos. Essa experiência diversificada o mantém ...
Leia mais
Pronto para começar?
Nuget Downloads 18,318,263 | Versão: 2026.4 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronPdf
executar um exemplo Veja seu HTML se transformar em um PDF.