Редактировать метаданные файлов PDF с помощью Java

Метаданные документа содержат основную информацию о документе в виде таких свойств, как заголовок, автор, тема, ключевые слова и т. д. Расширяемая платформа метаданных (XMP) — это стандарт на основе XML для хранения метаданных документа в виде пары «ключ-значение». пара. Мы можем программно добавлять, редактировать или читать информацию о документе и метаданные XMP документа PDF. В этой статье мы узнаем, как редактировать свойства и метаданные PDF с помощью Java.

В этой статье должны быть раскрыты следующие темы:

Java API для редактирования свойств PDF и метаданных

Для редактирования свойств PDF и метаданных мы будем использовать Aspose.PDF for Java API. Это позволяет нам создавать, изменять, преобразовывать, отображать, защищать и печатать поддерживаемые документы без использования Adobe Acrobat. Пожалуйста, либо загрузите JAR API, либо добавьте следующую конфигурацию pom.xml в приложение Java на основе 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>

Редактировать свойства PDF с помощью Java

Мы можем редактировать информацию PDF-документа, используя класс PdfFileInfo, который представляет метаинформацию PDF-документа. Мы можем установить различные предопределенные свойства, выполнив следующие шаги:

  1. Во-первых, загрузите документ PDF с помощью класса PdfFileInfo.
  2. Установите различные свойства, такие как автор, создатель, ключевые слова, тема, заголовок и т. д.
  3. Наконец, сохраните файл PDF с помощью метода saveNewInfo() с путем к выходному файлу в качестве аргумента.

В следующем примере кода показано, как редактировать метасвойства файла PDF с помощью Java.

// В этом примере кода показано, как установить основную информацию документа PDF.
// Документ с открытым исходным кодом
PdfFileInfo fileInfo = new PdfFileInfo("D:\\Files\\PDF\\sample.pdf");

// Установить информацию PDF
fileInfo.setAuthor("Aspose");
fileInfo.setTitle("Editing Metadata");
fileInfo.setKeywords("Aspose.Pdf, DOM, API");
fileInfo.setSubject("PDF Information");
fileInfo.setCreator("Aspose");

// Сохранить обновленный файл
fileInfo.saveNewInfo("D:\\Files\\PDF\\Updated_Info_output.pdf");
Редактировать мета-свойства PDF-файла в Java.

Редактировать мета-свойства PDF-файла в Java.

Чтение свойств PDF с помощью Java

Мы можем прочитать основную информацию о PDF-документе, выполнив следующие шаги:

  1. Во-первых, загрузите документ PDF с помощью класса PdfFileInfo.
  2. Наконец, покажите информацию о документе, прочитав значения мета-свойств.

В следующем примере кода показано, как получить мета-свойства файла PDF с помощью Java.

// В этом примере кода показано, как получить основную информацию о документе PDF.
// Открыть документ
PdfFileInfo fileInfo = new PdfFileInfo("D:\\Files\\PDF\\Updated_Info_output.pdf");

// Получить информацию в формате 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());

// Найдите, является ли это действительным PDF, и он также зашифрован
System.out.println("Is Valid PDF :" + fileInfo.isPdfFile());
// в случае, если файл зашифрован, вам необходимо указать пароль для открытия файла
// как второй аргумент конструктора 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

Получить метаданные XMP файла PDF в Java

Мы можем прочитать метаданные XMP документа PDF, выполнив следующие действия:

  1. Во-первых, загрузите документ PDF с помощью класса Document.
  2. Наконец, прочитайте метаданные с помощью метода getItem() класса Metadata и извлеките информацию.

В следующем примере кода показано, как получить метаданные XMP файла PDF с помощью Java.

// В этом примере кода показано, как получить метаданные XMP документа PDF.
// Открыть документ
Document pdfDocument = new Document("D:\\Files\\PDF\\SetXMPMetadata.pdf");

// Получить свойства
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

Установите метаданные XMP в файл PDF в Java

Мы можем установить метаданные XMP в файле PDF, выполнив следующие действия:

  1. Во-первых, загрузите документ PDF с помощью класса Document.
  2. Затем установите значения метаданных с помощью метода setItem() класса Metadata.
  3. Наконец, сохраните файл PDF с помощью метода Document.save() с путем к выходному файлу в качестве аргумента.

В следующем примере кода показано, как установить метаданные XMP файла PDF с помощью Java.

// В этом примере кода показано, как задать метаданные XMP документа PDF.
// Открыть документ
Document pdfDocument = new Document("D:\\Files\\PDF\\sample.pdf");

// Установить свойства
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"));

// Сохранить документ
pdfDocument.save("D:\\Files\\PDF\\SetXMPMetadata.pdf");

Настройка пространства имен метаданных XMP в файле PDF

Мы можем установить настраиваемый URI пространства имен вместо определенных спецификаций XMP в файле PDF. Для этой цели API предоставляет метод registerNamespaceUri в классе Metadata. Мы можем создать новое пространство имен метаданных с префиксом, выполнив следующие шаги:

  1. Во-первых, загрузите документ PDF с помощью класса Document.
  2. Затем вызовите метод registerNamespaceUri() с префиксом и URI пространства имен в качестве аргументов.
  3. Затем установите значения метаданных с помощью метода setItem().
  4. Наконец, сохраните файл PDF с помощью метода Document.Save() с путем к выходному файлу в качестве аргумента.

В следующем примере кода показано, как задать пользовательское пространство имен метаданных в файле PDF с помощью Java.

// В этом примере кода показано, как установить настраиваемые метаданные XMP для документа PDF.
// Открыть документ
Document pdfDocument = new Document("D:\\Files\\PDF\\sample.pdf");

// Установить индивидуальные свойства
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"));

// Сохранить документ
pdfDocument.save("D:\\Files\\PDF\\CustomizedXMPMetadata.pdf");

Мы можем прочитать настроенные свойства метаданных XMP, выполнив шаги, упомянутые ранее.

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

Получите бесплатную лицензию API

Вы можете попробовать API без ограничений по ознакомительной версии, запросив бесплатную временную лицензию.

Вывод

В этой статье мы узнали, как:

  • добавлять/редактировать основную информацию PDF-документа с помощью Java;
  • установить/получить метаданные XMP в файле PDF с помощью Java;
  • установить URI пользовательского пространства имен метаданных с префиксом.

Кроме того, вы можете узнать больше об Aspose.PDF для Java API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также