Четете метаданни от PDF с помощта на Java

Метаданните във файловете PDF включват важни подробности за документа, включително заглавие, автор, дати на създаване и модификация, ключови думи и други подходящи данни. Извличането на тези метаданни може да предложи значителни предимства за редица приложения, от системи за управление на документи до задачи за анализ на данни и автоматизация. Тази статия ще разгледа процеса на това как да четете метаданни от PDF с помощта на Java. Ето стъпка по стъпка разбивка на процедурата, придружена от примерен код, за да илюстрирате как да четете метаданни на PDF с помощта на Java.

Стъпки за четене на метаданни от PDF с помощта на Java

  1. Настройте вашето IDE да използва GroupDocs.Metadata for Java за извличане на метаданни от PDF файлове
  2. Създайте екземпляр на обект Metadata, като използвате пътя на PDF файла като аргумент за неговия конструктор
  3. Задайте правила за проверка на събраната информация за метаданни
  4. Осигурете условие за използване на метода Metadata.findProperties
  5. Преминете през всяко свойство поотделно

Извличането на метаданни от PDF файлове с помощта на Java дава на разработчиците ценна информация относно свойствата на документа като заглавие, авторство, дати на създаване и модификация и ключови думи. Тези данни играят критична роля в системите за управление на документи, анализа на данни и автоматизираните работни процеси. Можете да следвате предоставените инструкции на Windows, macOS или Linux, стига Java да е инсталирана. Не са необходими допълнителни софтуерни инсталации за извличане на метаданни на PDF в Java. След конфигуриране на препоръчителната библиотека и коригиране на файловите пътища според нуждите, интегрирането на следния код във вашите проекти трябва да бъде лесно, без никакви усложнения или трудности.

Код за четене на метаданни от PDF с помощта на Java

import com.groupdocs.metadata.Metadata;
import com.groupdocs.metadata.core.FileFormat;
import com.groupdocs.metadata.core.IReadOnlyList;
import com.groupdocs.metadata.core.MetadataProperty;
import com.groupdocs.metadata.core.MetadataPropertyType;
import com.groupdocs.metadata.licensing.License;
import com.groupdocs.metadata.search.FallsIntoCategorySpecification;
import com.groupdocs.metadata.search.OfTypeSpecification;
import com.groupdocs.metadata.search.Specification;
import com.groupdocs.metadata.tagging.Tags;
import java.util.Calendar;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ReadMetadataFromPDFUsingJava {
public static void main(String[] args) {
// Set License to avoid the limitations of Metadata library
License license = new License();
license.setLicense("GroupDocs.Metadata.lic");
Metadata metadata = new Metadata("input.pdf");
if (metadata.getFileFormat() != FileFormat.Unknown && !metadata.getDocumentInfo().isEncrypted()) {
System.out.println();
// Fetch all metadata properties that fall into a particular category
IReadOnlyList<MetadataProperty> properties = metadata.findProperties(new FallsIntoCategorySpecification(Tags.getContent()));
System.out.println("The metadata properties describing some characteristics of the file content: title, keywords, language, etc.");
for (MetadataProperty property : properties) {
System.out.println(String.format("Property name: %s, Property value: %s", property.getName(), property.getValue()));
}
// Fetch all properties having a specific type and value
int year = Calendar.getInstance().get(Calendar.YEAR);
properties = metadata.findProperties(new OfTypeSpecification(MetadataPropertyType.DateTime).and(new ReadMetadataFromPDFUsingJava().new YearMatchSpecification(year)));
System.out.println("All datetime properties with the year value equal to the current year");
for (MetadataProperty property : properties) {
System.out.println(String.format("Property name: %s, Property value: %s", property.getName(), property.getValue()));
}
// Fetch all properties whose names match the specified regex
Pattern pattern = Pattern.compile("^author|company|(.+date.*)$", Pattern.CASE_INSENSITIVE);
properties = metadata.findProperties(new ReadMetadataFromPDFUsingJava().new RegexSpecification(pattern));
System.out.println(String.format("All properties whose names match the following regex: %s", pattern.pattern()));
for (MetadataProperty property : properties) {
System.out.println(String.format("Property name: %s, Property value: %s", property.getName(), property.getValue()));
}
}
}
// Define your own specifications to filter metadata properties
public class YearMatchSpecification extends Specification {
public YearMatchSpecification(int year) {
setValue(year);
}
public final int getValue() {
return auto_Value;
}
private void setValue(int value) {
auto_Value = value;
}
private int auto_Value;
public boolean isSatisfiedBy(MetadataProperty candidate) {
Date date = candidate.getValue().toClass(Date.class);
if (date != null) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return getValue() == calendar.get(Calendar.YEAR);
}
return false;
}
}
public class RegexSpecification extends Specification {
private Pattern pattern;
public RegexSpecification(Pattern pattern) {
this.pattern = pattern;
}
@Override
public boolean isSatisfiedBy(MetadataProperty metadataProperty) {
Matcher matcher = pattern.matcher(metadataProperty.getName());
return matcher.find();
}
}
}

В обобщение, тази статия предлага подробно ръководство за това как да получавате метаданни на PDF в Java. С библиотеката с метаданни разработчиците могат ефективно да извличат важна информация като заглавия на документи, подробности за автора, дати на създаване и модификация и ключови думи от PDF документи. Овладяването на техники за извличане на метаданни в Java позволява на разработчиците да създават стабилни приложения за управление на документи, анализ на данни и автоматизация. Ние ви насърчаваме да експериментирате с различни PDF файлове и да изследвате допълнителни свойства на метаданни, за да подобрите допълнително възможностите за извличане на метаданни в Java приложения.

В предишен разговор представихме подробен урок за извличане на метаданни от PPTX файлове с помощта на Java. За по-задълбочено разбиране на тази тема, предлагаме да се консултирате с нашето изчерпателно ръководство за това как да чете метаданни от PPTX с помощта на Java.

 Български