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

 Українська