как получить определенные теги метаданных из файлов с помощью apache tika

У меня есть несколько файлов в папке (sample.pdf, sample.html и т. д.), и я использую следующую команду Apache tika для извлечения метаданных.

java -jar tika-app.jar -m -j /sample/sample.pdf > test.txt

после выполнения этой команды я могу получить все теги метаданных для файла sample.pdf, но мое требование состоит в том, чтобы получить определенные теги, такие как автор, название и т. д. Пожалуйста, предложите мне, как использовать Apache tika для получения определенных тегов метаданных.

Спасибо


person user2353439    schedule 24.06.2013    source источник
comment
xpdf предоставляет утилиту pdfinfo, предоставляющую информацию о метаданных для PDF.   -  person devnull    schedule 24.06.2013
comment
Поместить метаданные во временный файл, grep для интересующего ключа метаданных, использовать awk для разделения значения? Или что-то более конкретное/на другом языке/и т.д.?   -  person Gagravarr    schedule 24.06.2013


Ответы (1)


Вы можете извлечь имена метаданных следующим образом (мой пример предназначен для анализа файла XML, вы можете просто изменить его на анализатор PDF или использовать анализатор автоматического обнаружения:

//detecting the file type
BodyContentHandler handler = new BodyContentHandler(-1);
Metadata metadata = new Metadata();
File inFile = new File("example.xml");
FileInputStream inputstream = new FileInputStream(inFile);
ParseContext pcontext = new ParseContext();

//Xml parser
XMLParser xmlparser = new XMLParser(); 
xmlparser.parse(inputstream, handler, metadata, pcontext);

System.out.println("Metadata of the document:");
String[] metadataNames = metadata.names();//Now we have all the metadata tags here

for(String name : metadataNames) {
    if (name == "Your Particular Tag"){ //here you can check if the tag names are the particular ones you need and do what you want with them
        System.out.println(name + ": " + metadata.get(name));
    }
}
person USC.Trojan    schedule 02.04.2017