我目前正在使用以下代码使用TIKA库提取PDF文件的内容和元数据。有没有一种方法可以读取特定的页面,或者将解析限制在TIKA中的前几页?
public static void main(final String[] args) throws IOException,TikaException, SAXException {
BodyContentHandler handler = new BodyContentHandler();
Metadata metadata = new Metadata();
FileInputStream inputstream = new FileInputStream(new File("test/test.pdf"));
ParseContext pcontext = new ParseContext();
//parsing the document using PDF parser
AutoDetectParser pdfparser = new AutoDetectParser();
pdfparser.parse(inputstream, handler, metadata,pcontext);
//getting the content of the document
System.out.println("Contents of the PDF :" + handler.toString());
//getting metadata of the document
//System.out.println("Metadata of the PDF:");
String[] metadataNames = metadata.names();
System.out.println(metadata.get("xmpTPg:NPages"));
for(String name : metadataNames) {
System.out.println(name+ " : " + metadata.get(name));
}
}
TIKA并不真正处理页面,但它确实在页面之前发送<div><p>
,在页面之后发送</p></div>
。您可以编辑处理程序的startElement
和endElement
来搜索这些字符。
如果您需要更多信息,可以查看topchef
的答案
https://stackoverflow.com/a/6271696/2197529