Číst metadata z DOCX pomocí Java

V moderní době digitálních technologií je odhalování skrytých informací v dokumentech zásadní pro efektivní správu a analýzu dokumentů. Metadata dokumentu, včetně podrobností, jako je autorství, datum vytvoření a historie revizí, nabízejí cenné informace o původu a vývoji dokumentu. Tento článek se ponoří do procesu, jak číst metadata z DOCX pomocí Java, s využitím knihovny metadat. To umožňuje vývojářům ponořit se hlouběji do jejich úložišť dokumentů a zlepšit pracovní postupy zpracování dokumentů. Níže jsou uvedeny základní kroky a příklad kódu demonstrující, jak číst metadata DOCX pomocí Java.

Kroky ke čtení metadat z DOCX pomocí Java

  1. Nakonfigurujte své IDE tak, aby využívalo GroupDocs.Metadata for Java k extrahování metadat DOCX
  2. Vytvořte instanci třídy Metadata a předejte cestu k souboru DOCX jako argument konstruktoru
  3. Vytvořte podmínku nebo pravidlo pro kontrolu všech vlastností metadat
  4. Zadejte predikát pro metodu Metadata.findProperties
  5. Opakujte načtené vlastnosti

Extrahování metadat ze souborů DOCX nabízí vývojářům řadu příležitostí, ať už jde o automatizaci kategorizace dokumentů, implementaci vyhledávacích funkcí v úložištích dokumentů nebo zajištění souladu organizace. Dodržování uvedených pokynů je kompatibilní s oblíbenými operačními systémy, jako jsou Windows, macOS a Linux, za předpokladu, že je nainstalována Java. Tento proces nevyžaduje žádné dodatečné instalace softwaru k extrahování metadat DOCX v Javě. Po nastavení doporučené knihovny a úpravě cest k souborům by měla být integrace následujícího kódu do vašich projektů jednoduchá a bezproblémová.

Kód pro čtení metadat z DOCX pomocí 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();
}
}
}

Abych to shrnul, schopnost číst metadata ze souborů DOCX poskytuje vývojářům cenné informace o jejich knihovnách dokumentů. Podle kroků popsaných v tomto článku a pomocí poskytnutého příkladu kódu můžete bez námahy získat metadata DOCX v Javě, což povede ke zlepšení organizace, analýzy a správy vašich dokumentů. Prozkoumejte různé vlastnosti metadat a ponořte se do knihovny, abyste zlepšili své schopnosti zpracování dokumentů v Javě. Výborně! Nyní jste zvládli dovednost extrahování metadat DOCX pomocí Javy.

Během předchozí diskuse jsme poskytli obsáhlý tutoriál o přístupu k podrobnostem dokumentu pomocí Javy. Chcete-li tomuto tématu porozumět podrobněji, doporučujeme vám prostudovat si našeho podrobného průvodce získat informace o dokumentu pomocí Java.

 Čeština