Работа с метаданными PDF-файла в Java

Aspose.PDF for Java предоставляет два основных способа работы с метаданными:

  • Через API DOM Document, DocumentInfo и document.getMetadata().
  • Фасадный API через PdfFileInfo.

Получение информации о PDF-файле

Используйте этот пример, когда нужно прочитать стандартные поля информации о документе, такие как автор, заголовок, тема или ключевые слова.

  1. Откройте исходный PDF в объекте Document.
  2. Получите доступ к объекту DocumentInfo.
  3. Прочитайте требуемые поля метаданных и выведите их значения.
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());
    }
}

Установка метаданных с префиксом пространства имён

Используйте этот пример, когда вам необходимо добавить или обновить свойство XMP, используя зарегистрированный префикс пространства имён.

  1. Откройте исходный PDF в объекте Document.
  2. Зарегистрируйте требуемое пространство имен XMP и добавьте элемент метаданных.
  3. Сохраните обновлённый документ.
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);
}

Обновление полей информации документа

Используйте этот пример, когда хотите записать стандартные свойства PDF‑файла, такие как автор, название, производитель или дата создания.

  1. Откройте исходный PDF в объекте Document.
  2. Получите доступ к DocumentInfo и назначьте новые значения метаданных.
  3. Сохраните документ с обновлённой информацией о файле.
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);
}

Установка свойств XMP-метаданных

Используйте этот пример, когда необходимо сохранить дополнительные записи XMP, включая пользовательские значения метаданных.

  1. Откройте исходный PDF в объекте Document.
  2. Добавьте требуемые элементы метаданных XMP через document.getMetadata().
  3. Сохраните выходной файл.
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);
}