java 如何读取PDF文件内容(按页读取)。
下面是代码,还请指证,不报错,但出不来结果。
Java code
// 搜索pdf
public List<String> searchPdfFile(String keyword,List<String> items) throws IOException {
File f = new File("/sdcard/LPR/lpr_pdf/");// 这是对应文件名
File[] fileList = f.listFiles();
PDDocument document = null;
for(File filePdf : fileList)
{
Toast.makeText(EntAppSea.this, filePdf.getName(),
Toast.LENGTH_LONG).show();
PDFTextStripper stripper = new PDFTextStripper();
document = PDDocument.load(filePdf);
int pageNum = document.getNumberOfPages();
Toast.makeText(EntAppSea.this, String.valueOf(pageNum),
Toast.LENGTH_LONG).show();
for(int i=1;i<=pageNum;i++)
{
stripper.setStartPage(i);
stripper.setEndPage(i+1);
String pdfStr = stripper.getText(document);
if(pdfStr.indexOf(keyword)>-1)
{
items.add(filePdf.getName()+"第"+i+"页");
}
}
}
return items;
}
------解决方案--------------------图片模式的PDF文件吧,比如说扫描件,你用PDF编辑工具,看看能不能取得里面的文本,如果是图片模式的PDF文件,估计就不好弄了。
另外,看过别人的一篇,关于读取PDF的博客文章。分享一下:
http://blog.csdn.net/yangjiyue/archive/2007/11/14/1885482.aspx
------解决方案--------------------
------解决方案--------------------图片模式的PDF文件应该不能读取吧。。。
------解决方案--------------------感觉PDF没法读取吧,http://blog.csdn.net/yangjiyue/archive/2007/11/14/1885482.aspx看了看
可以试试,如果是仪器导出的pdf文件估计应该没问题了
------解决方案--------------------把PDF当BIN文件
------解决方案--------------------看你的代码,你用的应该是apache的pdfbox,但Toast和EntAppSea是什么东东,你自己写的类吗?
------解决方案--------------------关于这个问题,我见过一个比较NB的设计:
1、打开文件
2、校验文件(文件不存在,不是PDF文件,不可读等等)
3、将文件读取到内存中
4、创建绘制画板
5、分析当前页面位置,绘制到画板上
。。。。
我当时就凌乱了
------解决方案--------------------楼主,能把完整的代码贴出来吗?学习一下,里面好多类名不知道是什么意思,我是新手,静观高手解决。
------解决方案--------------------IO 流????
------解决方案--------------------貌似有图片和加密过的pdf文件无法转换,
http://blog.csdn.net/yinbaicheng/archive/2011/01/25/6163345.aspx
这里有个pdf转txt文件的代码,希望对楼主有帮助!
------解决方案--------------------密切关注,希望有好的解决方案
------解决方案--------------------
------解决方案--------------------我刚才试了下别人给的代码,我从网上下的pdfbox-0.7.3.jar,不知道是不是正确的版本
------解决方案--------------------把PDF直接转了吧!。别用PDF