In het moderne tijdperk van digitale technologie is het blootleggen van de verborgen informatie in documenten cruciaal voor effectief documentbeheer en -analyse. Metagegevens van documenten, inclusief details zoals auteurschap, aanmaakdatum en revisiegeschiedenis, bieden waardevolle inzichten in de oorsprong en evolutie van een document. In dit artikel wordt dieper ingegaan op het proces van het lezen van metadata uit DOCX met behulp van Java, waarbij gebruik wordt gemaakt van de Metadata-bibliotheek. Hierdoor kunnen ontwikkelaars dieper in hun documentopslagplaatsen duiken en hun documentverwerkingsworkflows verbeteren. Hieronder vindt u de essentiële stappen en een codevoorbeeld dat demonstreert hoe u metagegevens van DOCX kunt lezen met Java.
Stappen om metagegevens uit DOCX te lezen met Java
- Configureer uw IDE om GroupDocs.Metadata for Java te gebruiken voor het extraheren van DOCX-metagegevens
- Instantieer de klasse Metadata, waarbij het DOCX-bestandspad als argument wordt doorgegeven aan de constructor
- Maak een voorwaarde of regel om alle metadata-eigenschappen te inspecteren
- Geef een predikaat op voor de methode Metadata.findProperties
- Herhaal de opgehaalde eigenschappen
Het extraheren van metagegevens uit DOCX-bestanden biedt ontwikkelaars talloze mogelijkheden, of het nu gaat om het automatiseren van documentcategorisering, het implementeren van zoekfuncties in documentopslagplaatsen of het garanderen van organisatorische compliance. Het volgen van de meegeleverde instructies is compatibel met populaire besturingssystemen zoals Windows, macOS en Linux, ervan uitgaande dat Java is geïnstalleerd. Voor dit proces zijn geen extra software-installaties nodig om metagegevens van DOCX in Java te extraheren. Na het instellen van de aanbevolen bibliotheek en het aanpassen van de bestandspaden zou het integreren van de volgende code in uw projecten eenvoudig en probleemloos moeten zijn.
Code om metagegevens uit DOCX te lezen met behulp van 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(); | |
} | |
} | |
} |
Samenvattend: de mogelijkheid om metadata uit DOCX-bestanden te lezen geeft ontwikkelaars waardevolle inzichten in hun documentbibliotheken. Door de stappen in dit artikel te volgen en het meegeleverde codevoorbeeld te gebruiken, kunt u moeiteloos metagegevens van DOCX in Java verkrijgen, wat leidt tot een betere organisatie, analyse en beheer van uw documenten. Verken verschillende metadata-eigenschappen en duik in de bibliotheek om uw documentverwerkingsmogelijkheden in Java te verbeteren. Goed gedaan! U beheerst nu de vaardigheid van het extraheren van DOCX-metagegevens met behulp van Java.
Tijdens een eerdere discussie hebben we een uitgebreide tutorial gegeven over het verkrijgen van toegang tot documentdetails met Java. Voor een diepgaander begrip van dit onderwerp raden we u aan onze gedetailleerde handleiding te raadplegen over hoe u documentinformatie ophalen met Java kunt gebruiken.