Metadados é um cartão de visita de um determinado documento digital que consiste em um conjunto de propriedades. Essas propriedades contêm informações básicas sobre o documento, como título, autor, assunto, palavras-chave, etc. A Extensible Metadata Platform (XMP) é um formato baseado em XML que permite salvar os metadados do documento em um par chave/valor. Podemos adicionar/editar informações do documento e metadados XMP em um documento PDF programaticamente. Neste artigo, aprenderemos como editar os metadados de arquivos PDF usando C#.
Os seguintes tópicos serão abordados neste artigo:
- API C# para editar metadados de arquivos PDF
- Editar metadados de um arquivo PDF
- Obter metadados de um arquivo PDF
- Obter metadados XMP de um arquivo PDF
- Definir metadados XMP em um arquivo PDF
- Personalizar namespace de metadados XMP em um arquivo PDF
API C# para editar metadados de arquivos PDF
Para editar informações de metadados em um documento PDF, usaremos Aspose.PDF for .NET API. Ele nos permite gerar, modificar, converter, renderizar, proteger e imprimir documentos suportados sem usar o Adobe Acrobat. Por favor, baixe a DLL da API ou instale-a usando NuGet.
PM> Install-Package Aspose.Pdf
Editar metadados de um arquivo PDF em C#
Podemos editar as informações do documento PDF usando a classe DocumentInfo que representa a meta-informação de um documento PDF. Podemos definir várias propriedades predefinidas seguindo as etapas abaixo:
- Primeiramente, carregue um documento PDF usando a classe Document.
- Em seguida, crie uma instância da classe DocumentInfo com o objeto da classe Document como argumento.
- Em seguida, defina várias propriedades, como Author, CreationDate, Keywords, Subject, Title, etc.
- Por fim, salve o arquivo PDF usando o método Document.Save() com o caminho do arquivo de saída como argumento.
O exemplo de código a seguir mostra como editar metadados de um arquivo PDF usando C#.
// Este exemplo de código demonstra como definir as informações básicas de um documento PDF.
// Abrir documento
Document pdfDocument = new Document("C:\\Files\\PDF\\sample.pdf");
// Inicializar o objeto DocumentInfo
DocumentInfo docInfo = new DocumentInfo(pdfDocument);
// Especificar propriedades de informações do documento
docInfo.Author = "Aspose";
docInfo.CreationDate = DateTime.Now;
docInfo.Keywords = "Aspose.Pdf, DOM, API";
docInfo.ModDate = DateTime.Now;
docInfo.Subject = "PDF Information";
docInfo.Title = "Setting PDF Document Information";
// Salvar documento
pdfDocument.Save("C:\\Files\\PDF\\sample_metadata.pdf");
Obter metadados de um arquivo PDF usando C#
Podemos ler as informações básicas de um documento PDF seguindo os passos abaixo:
- Primeiramente, carregue um documento PDF usando a classe Document.
- Em seguida, crie uma instância da classe DocumentInfo com o objeto da classe Document como argumento.
- Por fim, mostre as informações do documento lendo os valores das propriedades dos metadados.
O exemplo de código a seguir mostra como obter metadados de um arquivo PDF usando C#.
// Este exemplo de código demonstra como obter as informações básicas de um documento PDF.
// Abrir documento
Document pdfDocument = new Document("C:\\Files\\PDF\\sample_metadata.pdf");
// Obter informações do documento
DocumentInfo docInfo = pdfDocument.Info;
// Mostrar informações do documento
Console.WriteLine("Author: {0}", docInfo.Author);
Console.WriteLine("Creation Date: {0}", docInfo.CreationDate);
Console.WriteLine("Keywords: {0}", docInfo.Keywords);
Console.WriteLine("Modify Date: {0}", docInfo.ModDate);
Console.WriteLine("Subject: {0}", docInfo.Subject);
Console.WriteLine("Title: {0}", docInfo.Title);
Author: Aspose
Creation Date: 2/9/2022 9:47:00 AM
Keywords: Aspose.Pdf, DOM, API
Modify Date: 2/9/2022 9:47:00 AM
Subject: PDF Information
Title: Setting PDF Document Information
Obtenha metadados XMP de um arquivo PDF usando C#
Podemos ler os metadados XMP de um documento PDF seguindo as etapas abaixo:
- Primeiramente, carregue um documento PDF usando a classe Document.
- Por fim, leia a propriedade Metadados e extraia as informações.
O exemplo de código a seguir mostra como obter metadados XMP de um arquivo PDF usando C#.
// Este exemplo de código demonstra como obter os metadados XMP de um documento PDF.
// Abrir documento
Document pdfDocument = new Document("C:\\Files\\PDF\\sample_xmp.pdf");
// Mostrar informações XMP
Console.WriteLine("xmp:CreateDate : " + pdfDocument.Metadata["xmp:CreateDate"]);
Console.WriteLine("xmp:Nickname : " + pdfDocument.Metadata["xmp:Nickname"]);
Console.WriteLine("xmp:CustomProperty : " + pdfDocument.Metadata["xmp:CustomProperty"]);
xmp:CreateDate: 2022-02-09T08:57:00.7+05:00
xmp:Nickname: Nickname
xmp:CustomProperty: Custom Value
Definir metadados XMP em um arquivo PDF usando C#
Podemos definir os metadados XMP em um arquivo PDF usando a propriedade Metadata da classe Document seguindo as etapas abaixo:
- Primeiramente, carregue um documento PDF usando a classe Document.
- Em seguida, defina os valores de metadados usando a propriedade Metadados.
- Por fim, salve o arquivo PDF usando o método Document.Save() com o caminho do arquivo de saída como argumento.
O exemplo de código a seguir mostra como definir metadados XMP de um arquivo PDF usando C#.
// Este exemplo de código demonstra como definir os metadados XMP de um documento PDF.
// Abrir documento
Document pdfDocument = new Document("C:\\Files\\PDF\\sample.pdf");
// Definir propriedades
pdfDocument.Metadata["xmp:CreateDate"] = DateTime.Now;
pdfDocument.Metadata["xmp:Nickname"] = "Nickname";
pdfDocument.Metadata["xmp:CustomProperty"] = "Custom Value";
// Salvar documento
pdfDocument.Save("C:\\Files\\PDF\\sample_xmp.pdf");
Personalizar namespace de metadados XMP em um arquivo PDF
Também podemos definir o URI do namespace personalizado em vez das especificações XMP definidas em um arquivo PDF. Para isso, a API fornece o método RegisterNamespaceUri na classe Metadata. Podemos criar um novo namespace de metadados com um prefixo seguindo as etapas abaixo:
- Primeiramente, carregue um documento PDF usando a classe Document.
- Em seguida, chame o método RegisterNamespaceUri com um prefixo e URI de namespace como argumentos.
- Em seguida, defina os valores de metadados usando a propriedade Metadados.
- Por fim, salve o arquivo PDF usando o método Document.Save() com o caminho do arquivo de saída como argumento.
O exemplo de código a seguir mostra como definir o namespace de metadados personalizado em um arquivo PDF usando C#.
// Este exemplo de código demonstra como definir o URI namepsace personalizado em um documento PDF.
// Abrir documento
Document pdfDocument = new Document("C:\\Files\\PDF\\sample.pdf");
// Definir propriedades
pdfDocument.Metadata.RegisterNamespaceUri("myown", "http:// myown.xyz.com/xap/1.0/");
pdfDocument.Metadata["myown:ModifyDate"] = DateTime.Now;
pdfDocument.Metadata["myown:CreateDate"] = DateTime.Now;
pdfDocument.Metadata["myown:DeveloperName"] = "Developer Name";
pdfDocument.Metadata["myown:MyProperty"] = "My Custom Value";
// Salvar documento
pdfDocument.Save("C:\\Files\\PDF\\sample_myown.pdf");
Podemos ler as propriedades de metadados XMP personalizadas seguindo as etapas mencionadas anteriormente.
myown:ModifyDate: 2022-02-09T10:38:26.8+05:00
myown:CreateDate: 2022-02-09T10:38:26.8+05:00
myown:DeveloperName: Developer Name
myown:MyProperty: My Custom Value
Obtenha uma licença de API gratuita
Você pode experimentar a API sem limitações de avaliação solicitando uma licença temporária gratuita.
Conclusão
Neste artigo, aprendemos como:
- adicionar/editar as informações básicas de um documento PDF usando C#;
- defina/ obtenha os metadados XMP em um arquivo PDF usando C#;
- defina o URI de namespace de metadados personalizado com um prefixo.
Além disso, você pode aprender mais sobre Aspose.PDF para .NET API usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no fórum.