Τα μεταδεδομένα εντός των αρχείων PDF περιλαμβάνουν κρίσιμες λεπτομέρειες σχετικά με το έγγραφο, συμπεριλαμβανομένων του τίτλου, του συγγραφέα, των ημερομηνιών δημιουργίας και τροποποίησης, λέξεων-κλειδιών και άλλων σχετικών δεδομένων. Η εξαγωγή αυτών των μεταδεδομένων μπορεί να προσφέρει σημαντικά πλεονεκτήματα για μια σειρά εφαρμογών, από συστήματα διαχείρισης εγγράφων έως εργασίες ανάλυσης δεδομένων και αυτοματισμού. Αυτό το άρθρο θα διερευνήσει τη διαδικασία του πώς να διαβάζετε μεταδεδομένα από PDF χρησιμοποιώντας Java. Ακολουθεί μια αναλυτική ανάλυση της διαδικασίας βήμα προς βήμα, συνοδευόμενη από ένα παράδειγμα κώδικα για να επεξηγηθεί πώς να διαβάζετε μεταδεδομένα PDF χρησιμοποιώντας Java.
Βήματα για την ανάγνωση μεταδεδομένων από PDF χρησιμοποιώντας Java
- Ρυθμίστε το IDE σας ώστε να χρησιμοποιεί το GroupDocs.Metadata for Java για εξαγωγή μεταδεδομένων από αρχεία PDF
- Δημιουργήστε ένα αντικείμενο Metadata χρησιμοποιώντας τη διαδρομή αρχείου PDF ως όρισμα για τον κατασκευαστή του
- Ορίστε κανόνες για τον έλεγχο των συλλεγόμενων πληροφοριών μεταδεδομένων
- Δώστε μια προϋπόθεση για τη χρήση της μεθόδου Metadata.findProperties
- Επαναλάβετε σε κάθε ιδιοκτησία ξεχωριστά
Η εξαγωγή μεταδεδομένων από αρχεία PDF χρησιμοποιώντας Java εξοπλίζει τους προγραμματιστές με πολύτιμες πληροφορίες σχετικά με τις ιδιότητες του εγγράφου όπως τίτλος, συγγραφή, ημερομηνίες δημιουργίας και τροποποίησης και λέξεις-κλειδιά. Αυτά τα δεδομένα διαδραματίζουν κρίσιμο ρόλο στα συστήματα διαχείρισης εγγράφων, στην ανάλυση δεδομένων και στις αυτοματοποιημένες ροές εργασίας. Μπορείτε να ακολουθήσετε τις παρεχόμενες οδηγίες σε Windows, macOS ή Linux, εφόσον είναι εγκατεστημένη η Java. Δεν απαιτούνται πρόσθετες εγκαταστάσεις λογισμικού για την εξαγωγή μεταδεδομένων PDF σε Java. Μετά τη διαμόρφωση της συνιστώμενης βιβλιοθήκης και την προσαρμογή των διαδρομών αρχείων όπως απαιτείται, η ενσωμάτωση του παρακάτω κώδικα στα έργα σας θα πρέπει να είναι απλή χωρίς επιπλοκές ή δυσκολίες.
Κώδικας για ανάγνωση μεταδεδομένων από PDF χρησιμοποιώντας 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(); | |
} | |
} | |
} |
Συνοπτικά, αυτό το άρθρο προσφέρει έναν λεπτομερή οδηγό σχετικά με τον τρόπο λήψης μεταδεδομένων PDF σε Java. Με τη βιβλιοθήκη μεταδεδομένων, οι προγραμματιστές μπορούν να ανακτήσουν αποτελεσματικά κρίσιμες πληροφορίες όπως τίτλους εγγράφων, λεπτομέρειες συντάκτη, ημερομηνίες δημιουργίας και τροποποίησης και λέξεις-κλειδιά από έγγραφα PDF. Η γνώση των τεχνικών εξαγωγής μεταδεδομένων στην Java επιτρέπει στους προγραμματιστές να δημιουργούν ισχυρές εφαρμογές για διαχείριση εγγράφων, ανάλυση δεδομένων και αυτοματισμό. Σας ενθαρρύνουμε να πειραματιστείτε με διάφορα αρχεία PDF και να εξερευνήσετε πρόσθετες ιδιότητες μεταδεδομένων για να βελτιώσετε περαιτέρω τις δυνατότητες εξαγωγής μεταδεδομένων σε εφαρμογές Java.
Σε μια προηγούμενη συνομιλία, παρουσιάσαμε ένα λεπτομερές σεμινάριο σχετικά με την εξαγωγή μεταδεδομένων από αρχεία PPTX χρησιμοποιώντας Java. Για βαθύτερη κατανόηση αυτού του θέματος, προτείνουμε να συμβουλευτείτε τον αναλυτικό μας οδηγό σχετικά με το πώς να ανάγνωση μεταδεδομένων από PPTX χρησιμοποιώντας Java.