2009-11-05 37 views
6

將PDF文件的文本(單詞)作爲一個長字符串或字符串數​​組獲取的最簡單方法是什麼?從PDf到字符串

我試過pdfbox,但那不適合我。

+1

什麼PDFBOX沒有工作?您是否正在尋找替代方案或解決您現有的問題? – Catchwa 2009-11-05 05:11:19

+0

嗯,我不喜歡API的設計,我已經快速瀏覽了iText,我認爲這是一個更好的選擇。 API似乎更符合我的需求。 – Ankur 2009-11-05 06:24:34

回答

1

JPedalMultivalent還提供文本提取在Java或者你可以使用許多新的PDF文件Runtime.exec

2

PDFBox的barfs,尤其是那些帶有嵌入式PNG圖像訪問xpdf

我印象非常深刻,PDFTextStream

4

使用的iText。例如下面的代碼片段將提取文本。

 
PdfTextExtractor parser =new PdfTextExtractor(new PdfReader("C:/Text.pdf")); 
parser.getTextFromPage(3); 

0

好了,我爲了提取PDF原始文本(它是基於PDFBox的)使用提卡,但我認爲只有當你必須從不同的文件格式中提取文本(自動檢測有助於提卡是有用很多)。

如果您只想將pdf解析爲文本,我建議您使用PDFTextStream ,因爲它比其他apis(如iText和PDFBox)更好解析器。

使用PDFTextStream,您可以輕鬆獲取結構化文本(pages-> blocks-> lines-> textUnits),並且可以提取相關信息,如字符編碼,高度,頁面中某個字符的位置等..

例子:

public class ExtractTextAllPages { 
    public static void main (String[] args) throws IOException { 
     String pdfFilePath = args[0]; 
     PDFTextStream pdfts = new PDFTextStream(pdfFilePath); 
     StringBuilder text = new StringBuilder(1024); 
     pdfts.pipe(new OutputTarget(text)); 
     pdfts.close(); 
     System.out.printf("The text extracted from %s is:", pdfFilePath); 
     System.out.println(text); 
    } 
}