Editar metadatos de archivos PDF usando Java

Los metadatos de un documento contienen información básica sobre el documento en forma de propiedades como título, autor, tema, palabras clave, etc. La plataforma de metadatos extensible (XMP) es un estándar basado en XML para almacenar metadatos de documentos como clave/valor. par. Podemos agregar, editar o leer la información del documento y los metadatos XMP de un documento PDF mediante programación. En este artículo, aprenderemos a editar propiedades y metadatos de PDF usando Java.

En este artículo se tratarán los siguientes temas:

API de Java para editar propiedades y metadatos de PDF

Para editar las propiedades de PDF y la información de los metadatos, utilizaremos Aspose.PDF para la API de Java. Nos permite generar, modificar, convertir, renderizar, asegurar e imprimir documentos compatibles sin usar Adobe Acrobat. Descargue el JAR de la API o agregue la siguiente configuración pom.xml en una aplicación Java basada en 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 propiedades de PDF usando Java

Podemos editar la información del documento PDF utilizando la clase PdfFileInfo que representa la metainformación de un documento PDF. Podemos establecer varias propiedades predefinidas siguiendo los pasos que se indican a continuación:

  1. En primer lugar, cargue un documento PDF utilizando la clase PdfFileInfo.
  2. Establezca varias propiedades, como Autor, Creador, Palabras clave, Asunto, Título, etc.
  3. Finalmente, guarde el archivo PDF usando el método saveNewInfo() con la ruta del archivo de salida como argumento.

El siguiente ejemplo de código muestra cómo editar metapropiedades de un archivo PDF usando Java.

// Este ejemplo de código demuestra cómo configurar la información básica de un documento PDF.
// Documento de código abierto
PdfFileInfo fileInfo = new PdfFileInfo("D:\\Files\\PDF\\sample.pdf");

// Establecer información PDF
fileInfo.setAuthor("Aspose");
fileInfo.setTitle("Editing Metadata");
fileInfo.setKeywords("Aspose.Pdf, DOM, API");
fileInfo.setSubject("PDF Information");
fileInfo.setCreator("Aspose");

// Guardar archivo actualizado
fileInfo.saveNewInfo("D:\\Files\\PDF\\Updated_Info_output.pdf");
Edite las metapropiedades de un archivo PDF en Java.

Edite las metapropiedades de un archivo PDF en Java.

Leer propiedades de PDF usando Java

Podemos leer la información básica de un documento PDF siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cargue un documento PDF utilizando la clase PdfFileInfo.
  2. Finalmente, muestre la información del documento leyendo los valores de las meta propiedades.

El siguiente ejemplo de código muestra cómo obtener metapropiedades de un archivo PDF usando Java.

// Este ejemplo de código demuestra cómo obtener la información básica de un documento PDF.
// Abrir documento
PdfFileInfo fileInfo = new PdfFileInfo("D:\\Files\\PDF\\Updated_Info_output.pdf");

// Obtener información en 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());

// Averigüe si es un PDF válido y si también está encriptado
System.out.println("Is Valid PDF :" + fileInfo.isPdfFile());
// en caso de que el archivo esté encriptado, debe proporcionar la contraseña de apertura del archivo
// como segundo argumento para el constructor 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

Obtener metadatos XMP de un archivo PDF en Java

Podemos leer los metadatos XMP de un documento PDF siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cargue un documento PDF utilizando la clase Documento.
  2. Finalmente, lea los metadatos usando el método getItem() de la clase Metadata y extraiga la información.

El siguiente ejemplo de código muestra cómo obtener metadatos XMP de un archivo PDF usando Java.

// Este ejemplo de código demuestra cómo obtener los metadatos XMP de un documento PDF.
// Abrir documento
Document pdfDocument = new Document("D:\\Files\\PDF\\SetXMPMetadata.pdf");

// obtener propiedades
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

Establecer metadatos XMP en un archivo PDF en Java

Podemos configurar los metadatos XMP en un archivo PDF siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cargue un documento PDF utilizando la clase Documento.
  2. A continuación, establezca los valores de los metadatos utilizando el método setItem() de la clase Metadata.
  3. Finalmente, guarde el archivo PDF usando el método Document.save() con la ruta del archivo de salida como argumento.

El siguiente ejemplo de código muestra cómo configurar metadatos XMP de un archivo PDF usando Java.

// Este ejemplo de código muestra cómo configurar los metadatos XMP de un documento PDF.
// Abrir documento
Document pdfDocument = new Document("D:\\Files\\PDF\\sample.pdf");

// Establecer propiedades
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"));

// Guardar documento
pdfDocument.save("D:\\Files\\PDF\\SetXMPMetadata.pdf");

Personalice el espacio de nombres de metadatos XMP en un archivo PDF

Podemos configurar el URI del espacio de nombres personalizado en lugar de las especificaciones XMP definidas en un archivo PDF. Para ello, la API proporciona el método registerNamespaceUri en la clase Metadata. Podemos crear un nuevo espacio de nombres de metadatos con un prefijo siguiendo los pasos que se detallan a continuación:

  1. En primer lugar, cargue un documento PDF utilizando la clase Documento.
  2. A continuación, llame al método registerNamespaceUri() con un prefijo y un URI de espacio de nombres como argumentos.
  3. Luego, establezca valores de metadatos usando el método setItem().
  4. Finalmente, guarde el archivo PDF usando el método Document.Save() con la ruta del archivo de salida como argumento.

El siguiente ejemplo de código muestra cómo establecer un espacio de nombres de metadatos personalizado en un archivo PDF usando Java.

// Este ejemplo de código demuestra cómo configurar los metadatos XMP personalizados de un documento PDF.
// Abrir documento
Document pdfDocument = new Document("D:\\Files\\PDF\\sample.pdf");

// Establecer propiedades 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"));

// Guardar documento
pdfDocument.save("D:\\Files\\PDF\\CustomizedXMPMetadata.pdf");

Podemos leer las propiedades de metadatos XMP personalizadas siguiendo los pasos mencionados 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

Obtenga una licencia de API gratuita

Puede probar la API sin limitaciones de evaluación solicitando una licencia temporal gratuita.

Conclusión

En este artículo, hemos aprendido a:

  • agregar/editar la información básica de un documento PDF usando Java;
  • establecer/obtener los metadatos XMP en un archivo PDF utilizando Java;
  • establecer un URI de espacio de nombres de metadatos personalizado con un prefijo.

Además, puede obtener más información sobre Aspose.PDF para la API de Java utilizando la documentación. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.

Ver también