Čitajte metapodatke iz DOCX-a pomoću Jave

U modernoj eri digitalne tehnologije, otkrivanje skrivenih informacija u dokumentima ključno je za učinkovito upravljanje i analizu dokumenata. Metapodaci dokumenta, uključujući pojedinosti poput autorstva, datuma stvaranja i povijesti revizija, nude dragocjene uvide u podrijetlo i razvoj dokumenta. Ovaj se članak bavi procesom čitanja metapodataka s DOCX pomoću Jave, koristeći biblioteku metapodataka. To omogućuje razvojnim programerima da dublje istraže svoje repozitorije dokumenata i poboljšaju tijek rada za obradu dokumenata. Ispod su osnovni koraci i primjer koda koji pokazuju kako čitati metapodatke DOCX-a pomoću Jave.

Koraci za čitanje metapodataka iz DOCX-a pomoću Jave

  1. Konfigurirajte svoj IDE da koristi GroupDocs.Metadata for Java za izdvajanje DOCX metapodataka
  2. Instancirajte klasu Metadata, prosljeđujući put DOCX datoteke kao argument konstruktoru
  3. Stvorite uvjet ili pravilo za pregled svih svojstava metapodataka
  4. Odredite predikat za metodu Metadata.findProperties
  5. Iteracija po dohvaćenim svojstvima

Izdvajanje metapodataka iz DOCX datoteka pruža programerima brojne mogućnosti, bilo da se radi o automatizaciji kategorizacije dokumenata, implementaciji značajki pretraživanja u spremištima dokumenata ili osiguravanju organizacijske usklađenosti. Slijeđenje priloženih uputa kompatibilno je s popularnim operativnim sustavima kao što su Windows, macOS i Linux, pod pretpostavkom da je Java instalirana. Ovaj proces ne zahtijeva nikakve dodatne instalacije softvera za ekstrahiranje metapodataka DOCX-a u Javi. Nakon postavljanja preporučene biblioteke i prilagođavanja staza datoteka, integracija sljedećeg koda u vaše projekte trebala bi biti jednostavna i bez problema.

Kod za čitanje metapodataka iz DOCX-a pomoću Jave

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();
}
}
}

Ukratko, mogućnost čitanja metapodataka iz DOCX datoteka daje programerima vrijedan uvid u njihove biblioteke dokumenata. Slijedeći korake navedene u ovom članku i korištenjem priloženog primjera koda, možete bez napora dobiti metapodatke DOCX-a u Javi, što dovodi do poboljšanja organizacije, analize i upravljanja vašim dokumentima. Istražite različita svojstva metapodataka i istražite biblioteku kako biste poboljšali svoje sposobnosti obrade dokumenata u Javi. Dobro napravljeno! Sada ste svladali vještinu izdvajanja DOCX metapodataka pomoću Jave.

Tijekom prethodne rasprave pružili smo opsežan vodič o pristupu detaljima dokumenta pomoću Jave. Za dublje razumijevanje ove teme, preporučujemo da pogledate naš detaljan vodič o tome kako dobiti informacije o dokumentu pomoću Jave.

 Hrvatski