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

 Български