下面是代码,还请指证,不报错,但出不来结果。// 搜索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;
}

解决方案 »

  1.   

    图片模式的PDF文件吧,比如说扫描件,你用PDF编辑工具,看看能不能取得里面的文本,如果是图片模式的PDF文件,估计就不好弄了。
    另外,看过别人的一篇,关于读取PDF的博客文章。分享一下:
    http://blog.csdn.net/yangjiyue/archive/2007/11/14/1885482.aspx
      

  2.   

    up it .please help me .
      

  3.   

    up it .问题还是没解决。
      

  4.   

    图片模式的PDF文件应该不能读取吧
      

  5.   

    感觉PDF没法读取吧,http://blog.csdn.net/yangjiyue/archive/2007/11/14/1885482.aspx看了看
    可以试试,如果是仪器导出的pdf文件估计应该没问题了
      

  6.   

    看你的代码,你用的应该是apache的pdfbox,但Toast和EntAppSea是什么东东,你自己写的类吗?
      

  7.   

    关于这个问题,我见过一个比较NB的设计:
    1、打开文件
    2、校验文件(文件不存在,不是PDF文件,不可读等等)
    3、将文件读取到内存中
    4、创建绘制画板
    5、分析当前页面位置,绘制到画板上

    我当时就凌乱了
      

  8.   

    貌似有图片和加密过的pdf文件无法转换,
    http://blog.csdn.net/yinbaicheng/archive/2011/01/25/6163345.aspx
    这里有个pdf转txt文件的代码,希望对楼主有帮助!
      

  9.   

    我刚才试了下别人给的代码,我从网上下的pdfbox-0.7.3.jar,不知道是不是正确的版本
      

  10.   

    我也正在看这个很厉害的设计 花费了好长时间终于看明白了 但是这个缺少图片的读取 能给提供一个完整版的demo吗
      

  11.   

    com.lowagie.text.pdf.PdfWriter 这个类可以对pdf 进行读写····