0
我想從使用apache tika的大型pdf(不掃描/柵格化pdf)文件中提取文本。Apache Tika無法從大型PDF中提取全文內容
但是,當我比較原始(從pdf)和提取的文本中提取文本後,我發現很多文本內容都丟失了。我曾嘗試使用setMaxStringLength(-1)
和BodyContentHandler(-1)
來最大化輸出。但仍然無法從pdf文件中提取全文內容。
下面是我試過的兩個樣本。
樣品:1
public class Extract
{
public static void main(String[] args) throws IOException, SAXException, TikaException
{
File file = new File("1.pdf");
//Instantiating Tika facade class
Tika tika = new Tika();
tika.setMaxStringLength(-1);
String filecontent = tika.parseToString(file);
System.out.println("Extracted Content: " + filecontent);
}
}
樣品:2
public class Extract
{
public static void main(String[] args) throws IOException, SAXException, TikaException
{
BodyContentHandler handler = new BodyContentHandler(-1); //-1 to allow parsing for unlimited character
Metadata metadata = new Metadata();
FileInputStream inputstream = new FileInputStream(new File("1.pdf"));
ParseContext pcontext = new ParseContext();
//parsing the document using PDF parser
PDFParser pdfparser = new PDFParser();
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();
for(String name : metadataNames) {
System.out.println(name+ " : " + metadata.get(name));
}
}
}
我能看到從PDF格式的最後一頁內容。但隨機很多文本從pdf中丟失。
如果這種情況只發生在單個或很少的pdf上,請分享有問題的pdf進行分析。 – mkl
您是否試過遵循[Apache Tika疑難解答 - PDF文本問題](https://wiki.apache.org/tika/Troubleshooting%20Tika#PDF_Text_Problems)說明? – Gagravarr