java解析PDF文件,并获取到指定数据.Eg

    在工作中,需要将PDF文件中的部分数据读取出来,那怎样获取到有用的数据呢?废话少说,直接上货!


import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;
import java.io.IOException;
import org.apache.pdfbox.pdfparser.PDFParser;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.util.PDFTextStripper;


/* 2017.11.24
* 解析pdf文件中的编号
* */

public class getInfoFromPDF {
private static String result = null;  // 用来保存pdf文件中的信息
   private static FileInputStream is = null;  // 输入流
   private static PDDocument document = null;   
//获取pdf文件中的编号
    public static String getAllInfoFromPDF(String pdfFilePath){  
        String result = null;  
        FileInputStream is = null;  
        PDDocument document = null;  
        try {  
            is = new FileInputStream(pdfFilePath);  
            PDFParser parser = new PDFParser(is);  
            parser.parse();  
            document = parser.getPDDocument();  
            PDFTextStripper stripper = new PDFTextStripper();  
            result = stripper.getText(document);  
        } catch (FileNotFoundException e) {  
            e.printStackTrace();  
        } catch (IOException e) {  
            e.printStackTrace();  
        } finally {  
            if (is != null) {  
                try {  
                    is.close();  
                } catch (IOException e) {  
                    e.printStackTrace();  
                }  
            }  
            if (document != null) {  
                try {  
                    document.close();  
                } catch (IOException e) {  
                    e.printStackTrace();  
                }  
            }  
        }  
        return result;  
    }  
public static void main(String[] args) throws IOException {
/*  
* 通过递归得到某一路径下所有的目录及其PDF文件
*/
// 通过传入文件路径获取文件
File file = new File("F:\\pdf文件解析");
// 把获取到的文件名保存在数组中
   File[] files = file.listFiles();
   for(File f:files){
    //获取文件类型,即文件后缀名
    int start = f.getAbsolutePath().length()-3;
    int end  = f.getAbsolutePath().length();
    //得到文件的后缀名
    String pdf = f.getAbsolutePath().substring(start, end);
    //判断是否是pdf格式的文件
    if(pdf.equals("pdf") || pdf.equals("PDF")){
    // 是pdf格式的文件
    //得到全部pdf文件中的信息
    String str = getInfoFromPDF.getAllInfoFromPDF(f.getAbsolutePath());
    //截取pdf文件中的编号
    String code = str.substring(str.indexOf(":")+1,str.indexOf(":")+27);
    System.out.println("解析pdf文件后编号为:"+code); 
    }
   }
}

注:记得添加jar哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值