2012-10-22 29 views
2

我遇到iText問題。其他人認爲iText僅適用於PDF創建?它無法讀取或從PDF中提取文本。真的嗎?iText as text從android上提取/閱​​讀PDF

如果它是真的,那麼我可以選擇哪些其他選項來從PDF文件中提取文本並將其保存在變量中或在Android設備中顯示它?

如果iText能夠從PDF中提取文本,那麼如何?

回答

3

iText可以從PDF中提取文本。儘管它起源於創建新的和操縱現有PDF的工具,但近年來它在提取文本方面也變得越來越好。這顯然意味着您應該使用當前的iText版本(5.3.x)進行文本提取。

iText主要開發人員Bruno Lowagie在第15章中介紹了iText在第二版中的作品,該章節的樣本可以在iText Sourceforge SVN存儲庫中找到。 Samples for chapter 15。一個好的起點是提取整個頁面的文本的ExtractPageContentSorted2

如果您有特殊要求,您可以使用ExtractPageContentSorted1作爲明確定義文本提取策略的起點;根據您的要求,您將需要自己的startegy。如果您只想要來自特定區域的文字,請查看ExtractPageContentArea

爲了真正優化iText的文本提取功能,您應該查看itext-question郵件列表存檔(例如at nabble.com),最近iText文本提取API已擴展爲用於其他用例。

+0

謝謝你的回覆。 –

+0

@ChristianEricParan順便說一句,如果您無法從特定的PDF中提取文本,而不是從一般的PDF中提取文本,請提供適當的樣本PDF以供檢查。 – mkl

+0

你是什麼意思的戰略?如果使用了一個關鍵字,並且我希望它所在的整個句子/段落有什麼用處。我如何將它作爲iText中的策略實施? –

0
Use below code to extract text from pdf : 


String pat = data.getData().getPath(); 
File f = new File(pat); 
//f is file path of pdf file 
read = new PdfReader(new FileInputStream(f)); 

parser = new PdfReaderContentParser(read); 

strw = new StringWriter(); 

stretegy = parser.processContent(j, new SimpleTextExtractionStrategy()); 

strw.write(stretegy.getResultantText()); 

String da = strw.toString(); 

//set extracted text from pdf file 
//to Edit-text  
edt1.setText(da);