Čtení metadat z PDF pomocí Java

Metadata v souborech PDF obsahují důležité podrobnosti o dokumentu, včetně názvu, autora, dat vytvoření a úprav, klíčových slov a dalších souvisejících dat. Extrahování těchto metadat může nabídnout významné výhody pro řadu aplikací, od systémů správy dokumentů po analýzy dat a automatizační úlohy. Tento článek prozkoumá postup, jak číst metadata z PDF pomocí Java. Zde je podrobný rozpis postupu spolu s ukázkovým kódem, který ilustruje, jak číst metadata PDF pomocí Java.

Kroky ke čtení metadat z PDF pomocí Java

  1. Nastavte své IDE tak, aby využívalo GroupDocs.Metadata for Java k extrahování metadat ze souborů PDF
  2. Vytvořte instanci objektu Metadata pomocí cesty k souboru PDF jako argumentu pro jeho konstruktor
  3. Nastavte pravidla pro kontrolu shromážděných informací metadat
  4. Zadejte podmínku pro použití metody Metadata.findProperties
  5. Projděte každou vlastnost jednotlivě

Extrahování metadat ze souborů PDF pomocí Javy poskytuje vývojářům cenné informace o vlastnostech dokumentu, jako je název, autorství, data vytvoření a úprav a klíčová slova. Tato data hrají klíčovou roli v systémech správy dokumentů, analýze dat a automatizovaných pracovních postupech. Můžete postupovat podle poskytnutých pokynů v systému Windows, macOS nebo Linux, pokud je nainstalována Java. K extrakce metadat PDF v Javě nejsou vyžadovány žádné další instalace softwaru. Po konfiguraci doporučené knihovny a úpravě cest k souborům podle potřeby by měla být integrace následujícího kódu do vašich projektů přímočará bez jakýchkoli komplikací nebo potíží.

Kód pro čtení metadat z PDF pomocí 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();
}
}
}

Stručně řečeno, tento článek nabízí podrobný návod, jak získat metadata PDF v Javě. Pomocí knihovny Metadata mohou vývojáři efektivně získávat důležité informace, jako jsou názvy dokumentů, podrobnosti o autorech, data vytvoření a úprav a klíčová slova z dokumentů PDF. Zvládnutí technik extrakce metadat v Javě umožňuje vývojářům vytvářet robustní aplikace pro správu dokumentů, analýzu dat a automatizaci. Doporučujeme vám experimentovat s různými soubory PDF a prozkoumat další vlastnosti metadat, abyste dále vylepšili možnosti extrakce metadat v aplikacích Java.

V předchozí konverzaci jsme představili podrobný návod na extrahování metadat ze souborů PPTX pomocí Javy. Chcete-li tomuto tématu lépe porozumět, doporučujeme vám nahlédnout do našeho komplexního průvodce číst metadata z PPTX pomocí Java.

 Čeština