Läs metadata från DOCX med Java

I den moderna eran av digital teknik är det avgörande att avslöja den dolda informationen i dokument för effektiv dokumenthantering och analys. Dokumentmetadata, inklusive detaljer som författarskap, skapelsedatum och revisionshistorik, ger värdefulla insikter om ett dokuments ursprung och utveckling. Den här artikeln fördjupar processen för hur man läser metadata från DOCX med Java, med hjälp av metadatabiblioteket. Detta ger utvecklare möjlighet att fördjupa sig i sina dokumentarkiv och förbättra sina arbetsflöden för dokumentbearbetning. Nedan är de väsentliga stegen och ett kodexempel som visar hur man läser metadata för DOCX med Java.

Steg för att läsa metadata från DOCX med Java

  1. Konfigurera din IDE för att använda GroupDocs.Metadata for Java för att extrahera DOCX-metadata
  2. Instantiera klassen Metadata och skicka DOCX-filsökvägen som ett argument till konstruktorn
  3. Skapa ett villkor eller en regel för att inspektera alla metadataegenskaper
  4. Ange ett predikat för metoden Metadata.findProperties
  5. Iterera över de hämtade egenskaperna

Att extrahera metadata från DOCX-filer ger utvecklare många möjligheter, vare sig det handlar om att automatisera dokumentkategorisering, implementera sökfunktioner i dokumentförråd eller säkerställa organisatorisk efterlevnad. Att följa de medföljande instruktionerna är kompatibelt med populära operativsystem som Windows, macOS och Linux, förutsatt att Java är installerat. Denna process kräver inga ytterligare programvaruinstallationer för att extrahera metadata från DOCX i Java. Efter att ha ställt in det rekommenderade biblioteket och justerat filsökvägar bör det vara enkelt och problemfritt att integrera följande kod i dina projekt.

Kod för att läsa metadata från DOCX med 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();
}
}
}

Sammanfattningsvis ger möjligheten att läsa metadata från DOCX-filer utvecklare värdefulla insikter i deras dokumentbibliotek. Genom att följa stegen som beskrivs i den här artikeln och använda det medföljande kodexemplet kan du enkelt få metadata för DOCX i Java, vilket leder till att förbättra organisation, analys och hantering av dina dokument. Utforska olika metadataegenskaper och fördjupa dig i biblioteket för att förbättra dina dokumentbearbetningsförmåga i Java. Bra gjort! Du har nu bemästrat färdigheten att extrahera DOCX-metadata med Java.

Under en tidigare diskussion gav vi en omfattande handledning om hur du kommer åt dokumentdetaljer med Java. För en mer djupgående förståelse av detta ämne rekommenderar vi att du hänvisar till vår detaljerade guide om hur du få dokumentinformation med Java.

 Svenska