Чтение метаданных из 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.

 Русский