Trabajar con metadatos de archivos PDF en Java

Aspose.PDF for Java proporciona dos formas principales de trabajar con los metadatos:

  • La API DOM a través de Document, DocumentInfo, y document.getMetadata().
  • La API de fachada a través PdfFileInfo.

Obtener información del archivo PDF

Utilice este ejemplo cuando necesite leer los campos de información estándar del documento, como autor, título, asunto o palabras clave.

  1. Abra el PDF de origen Document.
  2. Acceda al objeto DocumentInfo.
  3. Lea los campos de metadatos requeridos y muestre sus valores.
public static void getPdfFileInformation(Path inputFile) {
    try (Document document = new Document(inputFile.toString())) {
        DocumentInfo docInfo = document.getInfo();

        System.out.println("Author: " + docInfo.getAuthor());
        System.out.println("Creation Date: " + docInfo.getCreationDate());
        System.out.println("Keywords: " + docInfo.getKeywords());
        System.out.println("Modify Date: " + docInfo.getModDate());
        System.out.println("Subject: " + docInfo.getSubject());
        System.out.println("Title: " + docInfo.getTitle());
    }
}

Establecer metadatos con un prefijo de espacio de nombres

Utilice este ejemplo cuando necesite agregar o actualizar una propiedad XMP mediante el uso de un prefijo de espacio de nombres registrado.

  1. Abra el PDF de origen Document.
  2. Registre el espacio de nombres XMP requerido y agregue el elemento de metadatos.
  3. Guarde el documento actualizado.
public static void setPrefixMetadata(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        document.getMetadata().registerNamespaceUri("xmp", "http://ns.adobe.com/xap/1.0/");
        document.getMetadata().addItem("xmp:ModifyDate", OffsetDateTime.now().toString());
        document.save(outputFile.toString());
    }
    System.out.println("Prefix metadata saved to " + outputFile);
}

Actualizar campos de información del documento

Utilice este ejemplo cuando desee escribir propiedades estándar de archivos PDF, como autor, título, productor o fecha de creación.

  1. Abra el PDF de origen Document.
  2. Acceda a DocumentInfo y asigne nuevos valores de metadatos.
  3. Guarde el documento con la información de archivo actualizada.
public static void setFileInformation(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        DocumentInfo docInfo = document.getInfo();
        Date now = new Date();

        docInfo.setAuthor("Aspose");
        docInfo.setCreationDate(now);
        docInfo.setKeywords("Aspose.Pdf, DOM, API");
        docInfo.setModDate(now);
        docInfo.setSubject("PDF Information");
        docInfo.setTitle("Setting PDF Document Information");
        docInfo.setProducer("Custom producer");
        docInfo.setCreator("Custom creator");

        document.save(outputFile.toString());
    }
    System.out.println("File information saved to " + outputFile);
}

Establecer propiedades de metadatos XMP

Utilice este ejemplo cuando necesite almacenar entradas XMP adicionales, incluidos valores de metadatos personalizados.

  1. Abra el PDF de origen Document.
  2. Agregue los elementos de metadatos XMP requeridos a través de document.getMetadata().
  3. Guarde el archivo de salida.
public static void setXmpMetadata(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        document.getMetadata().addItem("xmp:CreateDate", OffsetDateTime.now().toString());
        document.getMetadata().addItem("xmp:Nickname", "Nickname");
        document.getMetadata().addItem("xmp:CustomProperty", "Custom Value");
        document.save(outputFile.toString());
    }
    System.out.println("XMP metadata saved to " + outputFile);
}