Im modernen Zeitalter der digitalen Technologie ist das Aufdecken der verborgenen Informationen in Dokumenten für eine effektive Dokumentenverwaltung und -analyse von entscheidender Bedeutung. Dokumentmetadaten, einschließlich Details wie Autorschaft, Erstellungsdatum und Revisionsverlauf, bieten wertvolle Einblicke in den Ursprung und die Entwicklung eines Dokuments. Dieser Artikel befasst sich mit dem Prozess, wie man mit Java Metadaten aus DOCX liest und dabei die Metadatenbibliothek nutzt. Dadurch können Entwickler tiefer in ihre Dokumentrepositorys eintauchen und ihre Dokumentverarbeitungsabläufe verbessern. Im Folgenden finden Sie die wesentlichen Schritte und ein Codebeispiel, das zeigt, wie man mit Java Metadaten von DOCX liest.
Schritte zum Lesen von Metadaten aus DOCX mit Java
- Konfigurieren Sie Ihre IDE so, dass sie GroupDocs.Metadata for Java zum Extrahieren von DOCX-Metadaten verwendet
- Instanziieren Sie die Klasse Metadata und übergeben Sie den DOCX-Dateipfad als Argument an den Konstruktor
- Erstellen Sie eine Bedingung oder Regel zur Überprüfung aller Metadateneigenschaften
- Geben Sie ein Prädikat für die Methode Metadata.findProperties an
- Iterieren Sie über die abgerufenen Eigenschaften
Das Extrahieren von Metadaten aus DOCX-Dateien bietet Entwicklern zahlreiche Möglichkeiten, sei es die Automatisierung der Dokumentkategorisierung, die Implementierung von Suchfunktionen in Dokumentrepositorys oder die Sicherstellung der Einhaltung von Unternehmensvorschriften. Das Befolgen der bereitgestellten Anweisungen ist mit gängigen Betriebssystemen wie Windows, macOS und Linux kompatibel, vorausgesetzt, Java ist installiert. Dieser Vorgang erfordert keine zusätzliche Softwareinstallation, um Metadaten von DOCX in Java zu extrahieren. Nachdem Sie die empfohlene Bibliothek eingerichtet und die Dateipfade angepasst haben, sollte die Integration des folgenden Codes in Ihre Projekte unkompliziert und problemlos sein.
Code zum Lesen von Metadaten aus DOCX mit 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(); | |
} | |
} | |
} |
Zusammenfassend lässt sich sagen, dass die Fähigkeit, Metadaten aus DOCX-Dateien zu lesen, Entwicklern wertvolle Einblicke in ihre Dokumentbibliotheken bietet. Indem Sie die in diesem Artikel beschriebenen Schritte befolgen und das bereitgestellte Codebeispiel verwenden, können Sie mühelos Metadaten von DOCX in Java abrufen, was die Organisation, Analyse und Verwaltung Ihrer Dokumente verbessert. Erkunden Sie verschiedene Metadateneigenschaften und vertiefen Sie sich in die Bibliothek, um Ihre Dokumentverarbeitungsfähigkeiten in Java zu verbessern. Gut gemacht! Sie beherrschen jetzt die Fähigkeit, DOCX-Metadaten mit Java zu extrahieren.
In einer früheren Diskussion haben wir ein umfassendes Tutorial zum Zugriff auf Dokumentdetails mit Java bereitgestellt. Für ein tieferes Verständnis dieses Themas empfehlen wir Ihnen, unsere ausführliche Anleitung zu Abrufen von Dokumentinformationen mit Java zu lesen.