В съвременната ера на цифровите технологии разкриването на скритата информация в документите е от решаващо значение за ефективното управление и анализ на документи. Метаданните на документа, включително подробности като авторство, дата на създаване и хронология на редакциите, предлагат ценна информация за произхода и еволюцията на документа. Тази статия се задълбочава в процеса на четене на метаданни от DOCX с помощта на Java, като се използва библиотеката с метаданни. Това дава възможност на разработчиците да навлязат по-дълбоко в своите хранилища на документи и да подобрят своите работни процеси за обработка на документи. По-долу са основните стъпки и примерен код, демонстриращ как да четете метаданни на DOCX с помощта на Java.
Стъпки за четене на метаданни от DOCX с помощта на Java
- Конфигурирайте вашата IDE да използва GroupDocs.Metadata for Java за извличане на DOCX метаданни
- Създайте екземпляр на класа Metadata, предавайки пътя на DOCX файла като аргумент на конструктора
- Създайте условие или правило за проверка на всички свойства на метаданни
- Задайте предикат за метода Metadata.findProperties
- Итериране на извлечените свойства
Извличането на метаданни от 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.