使用pdfbox从PDF文件中提取文本

4

我正在尝试使用pdfbox从PDF文件中提取文本,但不是作为命令行工具,而是在我的Java应用程序中使用。我正在使用jsoup下载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/。我从未使用过 jsouppdfbox,所以无法提供帮助,但我会尝试使用 pdfbox,因为我一直在测试 itextpdf reader 以提取文本信息。 - WeloSefer
4
好的,如果您能回答自己的问题以备将来使用,那就太棒了。 - WeloSefer
3
提供答案作为实际答案,并将问题标记为已回答,以便其他用户从未回答的问题搜索页面查看正确答案。 - Richard Krajunus
除了重复一遍,我无法再添加更多内容。未回答的问题就像从未被发现的水泉。 - James P.
iText有一个新的许可证,如果它不是一个开源项目,你就不能使用它...或者购买许可证...但你可以使用PDFBOX(并且你可以使用PDFBOX Lucene索引文件)。 - cyril
1个回答

2
(Question answered in the comments. See Question with no answers, but issue solved in the comments (or extended in chat) )
@WeloSefer写道:
也许这篇文章可以帮助你入门……我从未使用过jsoup或pdfbox,所以无法提供帮助,但我一定会尝试pdfbox,因为我一直在测试itextpdf reader以提取文本。
OP写道:
谢谢,这正是我要找的——现在它可以工作了:) 这个问题已经解决了——工作代码在这里http://thottingal.in/blog/2009/06/24/pdfbox-extract-text-from-pdf/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接