
Os metadados de um documento contêm informações básicas sobre o documento na forma de propriedades como título, autor, assunto, palavras-chave, etc. A Extensible Metadata Platform (XMP) é um padrão baseado em XML para armazenar metadados de documentos como chave/valor par. Podemos adicionar, editar ou ler as informações do documento e metadados XMP de um documento PDF programaticamente. Neste artigo, aprenderemos como editar propriedades e metadados de PDF usando Java.
Os seguintes tópicos serão abordados neste artigo:
- API Java para editar propriedades e metadados de PDF
- Editar propriedades de PDF usando Java
- Ler propriedades de PDF usando Java
- Obter metadados XMP de um arquivo PDF
- Definir metadados XMP em um arquivo PDF
- Personalizar namespace de metadados XMP em um arquivo PDF
API Java para editar propriedades e metadados de PDF
Para editar PDF propriedades e informações de metadados, usaremos Aspose.PDF for Java API. Ele nos permite gerar, modificar, converter, renderizar, proteger e imprimir documentos suportados sem usar o Adobe Acrobat. Faça o download do JAR da API ou adicione a seguinte configuração pom.xml em um aplicativo Java baseado em Maven.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>22.3</version>
</dependency>
Editar propriedades de PDF usando Java
Podemos editar as informações do documento PDF usando a classe PdfFileInfo 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 PdfFileInfo.
- Defina várias propriedades, como Autor, Criador, Palavras-chave, Assunto, Título, etc.
- Por fim, salve o arquivo PDF usando o método saveNewInfo() com o caminho do arquivo de saída como argumento.
O exemplo de código a seguir mostra como editar propriedades meta de um arquivo PDF usando Java.
// Este exemplo de código demonstra como definir as informações básicas de um documento PDF.
// Documento de código aberto
PdfFileInfo fileInfo = new PdfFileInfo("D:\\Files\\PDF\\sample.pdf");
// Definir informações do PDF
fileInfo.setAuthor("Aspose");
fileInfo.setTitle("Editing Metadata");
fileInfo.setKeywords("Aspose.Pdf, DOM, API");
fileInfo.setSubject("PDF Information");
fileInfo.setCreator("Aspose");
// Salvar arquivo atualizado
fileInfo.saveNewInfo("D:\\Files\\PDF\\Updated_Info_output.pdf");

Edite as propriedades Meta de um arquivo PDF em Java.
Ler propriedades de PDF usando Java
Podemos ler as informações básicas de um documento PDF seguindo os passos abaixo:
- Primeiramente, carregue um documento PDF usando a classe PdfFileInfo.
- Por fim, mostre as informações do documento lendo os valores das metapropriedades.
O exemplo de código a seguir mostra como obter propriedades meta de um arquivo PDF usando Java.
// Este exemplo de código demonstra como obter as informações básicas de um documento PDF.
// Abrir documento
PdfFileInfo fileInfo = new PdfFileInfo("D:\\Files\\PDF\\Updated_Info_output.pdf");
// Obter informações em PDF
System.out.println("Subject :" + fileInfo.getSubject());
System.out.println("Title :" + fileInfo.getTitle());
System.out.println("Keywords :" + fileInfo.getKeywords());
System.out.println("Creator :" + fileInfo.getCreator());
System.out.println("Creation Date :" + fileInfo.getCreationDate());
System.out.println("Modification Date :" + fileInfo.getModDate());
// Descubra se é um PDF válido e também criptografado
System.out.println("Is Valid PDF :" + fileInfo.isPdfFile());
// caso o arquivo esteja criptografado, você precisa fornecer a senha de abertura do arquivo
// como segundo argumento para o construtor PdfFileInfo
System.out.println("Is Encrypted :" + fileInfo.isEncrypted());
Subject :PDF Information
Title :Editing Metadata
Keywords :Aspose.Pdf, DOM, API
Creator :Aspose
Creation Date :D:20170612160123-04'00'
Modification Date :D:20220405214422+05'00'
Is Valid PDF :true
Is Encrypted :false
Obter metadados XMP de um arquivo PDF em Java
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 os metadados usando o método getItem() da classe Metadata e extraia as informações.
O exemplo de código a seguir mostra como obter metadados XMP de um arquivo PDF usando Java.
// Este exemplo de código demonstra como obter os metadados XMP de um documento PDF.
// Abrir documento
Document pdfDocument = new Document("D:\\Files\\PDF\\SetXMPMetadata.pdf");
// Obter propriedades
System.out.println("xmp:CreateDate: " + pdfDocument.getMetadata().get_Item("xmp:CreateDate"));
System.out.println("xmp:Nickname: " + pdfDocument.getMetadata().get_Item("xmp:Nickname"));
System.out.println("xmp:CustomProperty: " + pdfDocument.getMetadata().get_Item("xmp:CustomProperty"));
xmp:CreateDate : 2022-04-05T10:05:24.4
xmp:Nickname : Nickname
xmp:CustomProperty : Custom Value
Definir metadados XMP em um arquivo PDF em Java
Podemos definir os metadados XMP em um arquivo PDF seguindo as etapas abaixo:
- Primeiramente, carregue um documento PDF usando a classe Document.
- Em seguida, defina os valores de metadados usando o método setItem() da classe Metadata.
- 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 Java.
// Este exemplo de código demonstra como definir os metadados XMP de um documento PDF.
// Abrir documento
Document pdfDocument = new Document("D:\\Files\\PDF\\sample.pdf");
// Definir propriedades
pdfDocument.getMetadata().set_Item("xmp:CreateDate", new XmpValue(new java.util.Date()));
pdfDocument.getMetadata().set_Item("xmp:Nickname", new XmpValue("Nickname"));
pdfDocument.getMetadata().set_Item("xmp:CustomProperty", new XmpValue("Custom Value"));
// Salvar documento
pdfDocument.save("D:\\Files\\PDF\\SetXMPMetadata.pdf");
Personalizar namespace de metadados XMP em um arquivo PDF
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 o método setItem().
- 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 Java.
// Este exemplo de código demonstra como definir os metadados XMP personalizados de um documento PDF.
// Abrir documento
Document pdfDocument = new Document("D:\\Files\\PDF\\sample.pdf");
// Definir propriedades personalizadas
pdfDocument.getMetadata().registerNamespaceUri("myown", "http:// myown.xyz.com/xap/1.0/");
pdfDocument.getMetadata().set_Item("myown:ModifyDate", new XmpValue(new java.util.Date()));
pdfDocument.getMetadata().set_Item("myown:CreateDate", new XmpValue(new java.util.Date()));
pdfDocument.getMetadata().set_Item("myown:DeveloperName", new XmpValue("Developer Name"));
pdfDocument.getMetadata().set_Item("myown:MyProperty", new XmpValue("My Custom Value"));
// Salvar documento
pdfDocument.save("D:\\Files\\PDF\\CustomizedXMPMetadata.pdf");
Podemos ler as propriedades de metadados XMP personalizadas seguindo as etapas mencionadas anteriormente.
NamespaceUri: http:// myown.xyz.com/xap/1.0/
myown:ModifyDate: 2022-04-05T10:18:45.9
myown:CreateDate: 2022-04-05T10:18:45.9
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 Java;
- defina/ obtenha os metadados XMP em um arquivo PDF usando Java;
- defina o URI de namespace de metadados personalizado com um prefixo.
Além disso, você pode aprender mais sobre Aspose.PDF para API Java usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no fórum.