Čitanje metapodataka iz PDF-a pomoću Jave

Metapodaci unutar PDF datoteka sadrže kritične pojedinosti o dokumentu, uključujući naslov, autora, datume stvaranja i izmjene, ključne riječi i druge relevantne podatke. Izdvajanje ovih metapodataka može ponuditi značajne prednosti za niz aplikacija, od sustava za upravljanje dokumentima do analize podataka i zadataka automatizacije. Ovaj članak će istražiti proces kako čitati metapodatke iz PDF-a pomoću Jave. Ovdje je detaljna raščlamba postupka, popraćena primjerom koda za ilustraciju kako čitati metapodatke PDF-a pomoću Jave.

Koraci za čitanje metapodataka iz PDF-a pomoću Jave

  1. Postavite svoj IDE da koristi GroupDocs.Metadata for Java za izdvajanje metapodataka iz PDF datoteka
  2. Instancirajte objekt Metadata koristeći put PDF datoteke kao argument za njegov konstruktor
  3. Postavite pravila za provjeru prikupljenih metapodataka
  4. Navedite uvjet za korištenje metode Metadata.findProperties
  5. Iterirajte kroz svako svojstvo pojedinačno

Izdvajanje metapodataka iz PDF datoteka pomoću Jave pruža programerima vrijedne informacije o svojstvima dokumenta kao što su naslov, autorstvo, datumi stvaranja i izmjene te ključne riječi. Ovi podaci igraju ključnu ulogu u sustavima upravljanja dokumentima, analizi podataka i automatiziranim tijekovima rada. Možete slijediti navedene upute u sustavu Windows, macOS ili Linux, sve dok je Java instalirana. Za ekstrahiranje metapodataka PDF-a u Javi nisu potrebne dodatne instalacije softvera. Nakon konfiguriranja preporučene biblioteke i prilagođavanja staza datoteka prema potrebi, integracija sljedećeg koda u vaše projekte trebala bi biti jednostavna, bez ikakvih komplikacija ili poteškoća.

Kod za čitanje metapodataka iz PDF-a pomoću Jave

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();
}
}
}

Ukratko, ovaj članak nudi detaljan vodič o tome kako dobiti metapodatke PDF-a u Javi. Pomoću biblioteke metapodataka programeri mogu učinkovito dohvatiti ključne informacije poput naslova dokumenata, pojedinosti o autoru, datuma stvaranja i izmjene te ključnih riječi iz PDF dokumenata. Ovladavanje tehnikama ekstrakcije metapodataka u Javi omogućuje programerima stvaranje robusnih aplikacija za upravljanje dokumentima, analizu podataka i automatizaciju. Potičemo vas da eksperimentirate s različitim PDF datotekama i istražite dodatna svojstva metapodataka kako biste dodatno poboljšali mogućnosti ekstrakcije metapodataka u Java aplikacijama.

U prethodnom razgovoru predstavili smo detaljan vodič o izdvajanju metapodataka iz PPTX datoteka pomoću Jave. Za dublje razumijevanje ove teme, predlažemo da pogledate naš sveobuhvatni vodič o tome kako čitanje metapodataka iz PPTX-a pomoću Jave.

 Hrvatski