Skaitykite metaduomenis iš PDF naudodami Java

PDF failų metaduomenys apima svarbią informaciją apie dokumentą, įskaitant pavadinimą, autorių, sukūrimo ir pakeitimo datas, raktinius žodžius ir kitus susijusius duomenis. Šių metaduomenų ištraukimas gali suteikti didelių pranašumų įvairioms programoms – nuo dokumentų valdymo sistemų iki duomenų analizės ir automatizavimo užduočių. Šiame straipsnyje bus nagrinėjamas procesas, kaip skaityti metaduomenis iš PDF naudojant Java. Toliau pateikiamas nuoseklus procedūros suskirstymas ir pavyzdinis kodas, iliustruojantis, kaip skaityti PDF metaduomenis naudojant Java.

Veiksmai, kaip skaityti metaduomenis iš PDF naudojant Java

  1. Nustatykite savo IDE, kad naudotumėte GroupDocs.Metadata for Java metaduomenims iš PDF failų išgauti
  2. Sukurkite objektą Metadata naudodami PDF failo kelią kaip jo konstruktoriaus argumentą
  3. Nustatykite surinktų metaduomenų informacijos tikrinimo taisykles
  4. Pateikite metodo Metadata.findProperties naudojimo sąlygą
  5. Pakartokite kiekvieną nuosavybę atskirai

Metaduomenų ištraukimas iš PDF failų naudojant Java suteikia kūrėjams vertingos informacijos apie dokumento ypatybes, pvz., pavadinimą, autorystę, sukūrimo ir keitimo datas bei raktinius žodžius. Šie duomenys atlieka svarbų vaidmenį dokumentų valdymo sistemose, duomenų analizėje ir automatizuotose darbo eigose. Jei įdiegta Java, galite vadovautis pateiktomis instrukcijomis Windows, MacOS arba Linux. Norint ištraukti PDF metaduomenis Java, nereikia įdiegti jokių papildomų programinės įrangos. Sukonfigūravus rekomenduojamą biblioteką ir prireikus pakoregavus failų kelius, toliau pateikto kodo integravimas į savo projektus turėtų būti paprastas be jokių komplikacijų ar sunkumų.

Kodas, skirtas skaityti metaduomenis iš PDF naudojant 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();
}
}
}

Apibendrinant, šiame straipsnyje pateiktas išsamus vadovas, kaip * gauti PDF metaduomenis Java*. Naudodami metaduomenų biblioteką, kūrėjai iš PDF dokumentų gali efektyviai nuskaityti svarbią informaciją, pvz., dokumentų pavadinimus, išsamią autoriaus informaciją, sukūrimo ir keitimo datas bei raktinius žodžius. Įvaldę Java metaduomenų išgavimo metodus, kūrėjai gali kurti patikimas dokumentų valdymo, duomenų analizės ir automatizavimo programas. Rekomenduojame eksperimentuoti su įvairiais PDF failais ir ištirti papildomas metaduomenų ypatybes, kad dar labiau padidintumėte metaduomenų išgavimo galimybes Java programose.

Ankstesniame pokalbyje pristatėme išsamią pamoką, kaip išgauti metaduomenis iš PPTX failų naudojant Java. Norėdami geriau suprasti šią temą, siūlome peržiūrėti išsamų vadovą, kaip skaityti metaduomenis iš PPTX naudojant Java.

 Latviski