Чтение метаданных из DOCX с помощью Java

В современную эпоху цифровых технологий раскрытие скрытой информации в документах имеет решающее значение для эффективного управления документами и их анализа. Метаданные документа, включая такие сведения, как авторство, дата создания и история изменений, дают ценную информацию о происхождении и развитии документа. В этой статье подробно рассматривается процесс чтения метаданных из DOCX с помощью Java с использованием библиотеки метаданных. Это позволяет разработчикам глубже копаться в своих репозиториях документов и улучшать рабочие процессы обработки документов. Ниже приведены основные шаги и пример кода, демонстрирующий, как читать метаданные DOCX с помощью Java.

Действия по чтению метаданных из DOCX с использованием Java

  1. Настройте свою IDE для использования GroupDocs.Metadata for Java для извлечения метаданных DOCX.
  2. Создайте экземпляр класса Metadata, передав путь к файлу DOCX в качестве аргумента конструктору.
  3. Создайте условие или правило для проверки всех свойств метаданных.
  4. Укажите предикат для метода Metadata.findProperties.
  5. Перебирать полученные свойства

Извлечение метаданных из файлов DOCX предоставляет разработчикам многочисленные возможности, будь то автоматизация категоризации документов, реализация функций поиска в репозиториях документов или обеспечение соответствия требованиям организации. Следование предоставленным инструкциям совместимо с популярными операционными системами, такими как Windows, macOS и Linux, при условии, что установлена Java. Этот процесс не требует какой-либо дополнительной установки программного обеспечения для извлечения метаданных DOCX в Java. После настройки рекомендуемой библиотеки и корректировки путей к файлам интеграция следующего кода в ваши проекты должна пройти легко и без проблем.

Код для чтения метаданных из DOCX с использованием 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 ReadMetadataFromDOCXUsingJava {
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.docx");
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 ReadMetadataFromDOCXUsingJava().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 ReadMetadataFromDOCXUsingJava().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();
}
}
}

Подводя итог, можно сказать, что возможность чтения метаданных из файлов DOCX дает разработчикам ценную информацию об их библиотеках документов. Следуя инструкциям, подробно описанным в этой статье, и используя предоставленный пример кода, вы можете легко получить метаданные DOCX на Java, что приведет к улучшению организации, анализа и управления вашими документами. Изучите различные свойства метаданных и углубитесь в библиотеку, чтобы расширить свои возможности обработки документов на Java. Отличная работа! Теперь вы овладели навыками извлечения метаданных DOCX с помощью Java.

Во время предыдущего обсуждения мы предоставили подробное руководство по доступу к деталям документа с помощью Java. Для более глубокого понимания этой темы мы рекомендуем обратиться к нашему подробному руководству по получить информацию о документе с помощью Java.

 Русский