Metadaten in PDF-Dateien enthalten wichtige Details zum Dokument, darunter Titel, Autor, Erstellungs- und Änderungsdatum, Schlüsselwörter und andere relevante Daten. Das Extrahieren dieser Metadaten kann für eine Reihe von Anwendungen erhebliche Vorteile bieten, von Dokumentenverwaltungssystemen bis hin zu Datenanalyse- und Automatisierungsaufgaben. In diesem Artikel wird der Prozess zum Lesen von Metadaten aus PDF mit Java erläutert. Hier finden Sie eine schrittweise Aufschlüsselung des Verfahrens, begleitet von einem Beispielcode, der veranschaulicht, wie Sie Metadaten aus PDF mit Java lesen.
Schritte zum Lesen von Metadaten aus PDF mit Java
- Richten Sie Ihre IDE so ein, dass sie GroupDocs.Metadata for Java zum Extrahieren von Metadaten aus PDF-Dateien verwendet
- Instanziieren Sie ein Metadata-Objekt, indem Sie den PDF-Dateipfad als Argument für seinen Konstruktor verwenden
- Legen Sie Regeln zum Überprüfen der gesammelten Metadateninformationen fest
- Geben Sie eine Bedingung für die Verwendung der Methode Metadata.findProperties an.
- Durchlaufen Sie jede Eigenschaft einzeln
Das Extrahieren von Metadaten aus PDF-Dateien mit Java liefert Entwicklern wertvolle Informationen zu Dokumenteigenschaften wie Titel, Autorschaft, Erstellungs- und Änderungsdatum sowie Schlüsselwörtern. Diese Daten spielen eine entscheidende Rolle in Dokumentenmanagementsystemen, Datenanalysen und automatisierten Workflows. Sie können den bereitgestellten Anweisungen unter Windows, macOS oder Linux folgen, solange Java installiert ist. Es sind keine zusätzlichen Softwareinstallationen erforderlich, um Metadaten von PDF in Java zu extrahieren. Nachdem Sie die empfohlene Bibliothek konfiguriert und die Dateipfade nach Bedarf angepasst haben, sollte die Integration des folgenden Codes in Ihre Projekte ohne Komplikationen oder Schwierigkeiten problemlos möglich sein.
Code zum Lesen von Metadaten aus PDF 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 ReadMetadataFromPDFUsingJava { | |
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.pdf"); | |
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 ReadMetadataFromPDFUsingJava().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 ReadMetadataFromPDFUsingJava().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 bietet dieser Artikel eine detaillierte Anleitung zum Abrufen von Metadaten aus PDF-Dateien in Java. Mit der Metadatenbibliothek können Entwickler wichtige Informationen wie Dokumenttitel, Autorendetails, Erstellungs- und Änderungsdaten sowie Schlüsselwörter effektiv aus PDF-Dokumenten abrufen. Durch die Beherrschung von Techniken zur Metadatenextraktion in Java können Entwickler robuste Anwendungen für Dokumentenverwaltung, Datenanalyse und Automatisierung erstellen. Wir empfehlen Ihnen, mit verschiedenen PDF-Dateien zu experimentieren und zusätzliche Metadateneigenschaften zu erkunden, um die Möglichkeiten der Metadatenextraktion in Java-Anwendungen weiter zu verbessern.
In einem früheren Gespräch haben wir ein ausführliches Tutorial zum Extrahieren von Metadaten aus PPTX-Dateien mit Java vorgestellt. Für ein tieferes Verständnis dieses Themas empfehlen wir Ihnen, unseren umfassenden Leitfaden zu Metadaten aus PPTX mit Java lesen zu konsultieren.