2013-01-16 111 views
4

我想使用pdfbox从PDF文件中提取文本,但不是作为命令行工具,而是在我的Java应用程序中。我正在使用jsoup下载pdf。使用pdfbox从PDF文件中提取文本

res = Jsoup 
.connect(host+action) 
.ignoreContentType(true) 
.data(data) 
.cookies(cookies) 
.method(Method.POST) 
.timeout(20*1000) 
.execute(); 

// prepare document 
InputStream is = new ByteArrayInputStream(res.bodyAsBytes()); 
PDDocument pdf = new PDDocument(); 
pdf.load(is,true); 

// extract text 
PDFTextStripper stripper = new PDFTextStripper(); 
String text = stripper.getText(pdf); 

// print extracted text 
System.out.println(text); 

此代码仅打印空行。当我这样做:

System.out.println(res.body()); 

它打印PDF文件输出是这样的:

%PDF-1.4 
%���� 
6 0 obj 
<< 
/Filter /FlateDecode 
/Length 1869 
>> 
stream 
x��X�n�� 

...

<< 
/Size 28 
/Info 27 0 R 
/Root 26 0 R 
>> 
startxref 
20632 
%%EOF 

所以,我相信,在PDF下载正确的 - 只是这个PDF剥离器不工作...

-------------------------------------- --------编辑

解决了这个问题 - 工作代码在这里http://thottingal.in/blog/2009/06/24/pdfbox-extract-text-from-pdf/

+1

也许[此](http://thottingal.in/blog/2009/06/24/pdfbox-extract-text-from-pdf/)可以帮助你开始...我从来没有与** jsoup **和** pdfbox **所以我没有帮助,但我肯定会尝试** pdfbox **,因为我一直在测试** itextpdf reader **来提取文本。 – WeloSefer

+0

谢谢,这就是我正在寻找 - 它现在的作品:) – user606521

+4

太好了。如果你可以回答你自己的问题供以后使用,这将是很好的.. – WeloSefer

回答

2

(问题在评论中回答。见Question with no answers, but issue solved in the comments (or extended in chat)

@WeloSefer写道:

也许this可以帮助你开始...我从来没有与jsoup也不PDFBOX工作,所以我没有帮助,但我肯定会尝试PDFBOX,因为我已经一直在测试用于提取文本的itextpdf阅读器。

的OP写道:

谢谢,这是我一直在寻找 - 现在的工作:) 这个问题就解决了 - 工作代码是在这里http://thottingal.in/blog/2009/06/24/pdfbox-extract-text-from-pdf/