zoukankan      html  css  js  c++  java
  • 读取pdf内容分页和全部

    //读取pdf 全部内容
    public static String topdffile(String pdffile){
    StringBuffer result = new StringBuffer();
    String str=null;
    FileInputStream is = null;
    PDDocument document = null;
    try {
    is = new FileInputStream(pdffile);
    PDFParser parser = new PDFParser(is);
    parser.parse();
    document = parser.getPDDocument();
    PDFTextStripper stripper = new PDFTextStripper();
    str=stripper.getText(document);
    // System.out.println("------"+str+"--------------");
    } 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 str;
    -----------------------------------------------------------
    //分页查询保存到map里
    // 是否排序
    boolean sort = false;
    // pdf文件名
    String pdfFile = file;
    // 输入文本文件名称
    String textFile = null;
    // 编码方式
    String encoding = "UTF-8";
    // 开始提取页数
    int startPage = 1;
    // 结束提取页数
    int endPage =5;
    // 文件输入流,生成文本文件
    Writer output = null;
    // 内存中存储的PDF Document
    PDDocument document = null;
    Map mpdf=new HashMap();
    try {
    try {
    // 首先当作一个URL来装载文件,如果得到异常再从本地文件系统//去装载文件
    URL url = new URL(pdfFile);
    //注意参数已不是以前版本中的URL.而是File。
    document = PDDocument.load(pdfFile);
    // 获取PDF的文件名
    String fileName = url.getFile();
    // 以原来PDF的名称来命名新产生的txt文件
    if (fileName.length() > 4) {
    File outputFile = new File(fileName.substring(0, fileName
    .length() - 4)
    + ".txt");
    textFile = outputFile.getName();
    }
    } catch (MalformedURLException e) {
    // 如果作为URL装载得到异常则从文件系统装载
    //注意参数已不是以前版本中的URL.而是File。
    document = PDDocument.load(pdfFile);
    if (pdfFile.length() > 4) {
    textFile = pdfFile.substring(0, pdfFile.length() - 4)
    + ".txt";
    }
    }
    // 文件输入流,写入文件倒textFile
    output = new OutputStreamWriter(new FileOutputStream(textFile),
    encoding);
    // PDFTextStripper来提取文本
    PDFTextStripper stripper = null;
    stripper = new PDFTextStripper();
    // 设置是否排序
    stripper.setSortByPosition(sort);
    // // 设置起始页
    // stripper.setStartPage(startPage);
    // // 设置结束页
    // stripper.setEndPage(endPage);



    for(int i=startPage;i<=document.getNumberOfPages();i++){
    stripper = new PDFTextStripper();
    stripper.setSortByPosition(sort);
    // 设置起始页
    stripper.setStartPage(i);
    // 设置结束页
    stripper.setEndPage(i);
    String textT=stripper.getText(document);
    // System.out.println("第" + i+"页");
    // System.out.println( "开始--------------------------------------------------------------------");
    // System.out.println( textT);
    // System.out.println( "--------------------------------------------------------------------结束");
    mpdf.put(i,textT);
    }
    // System.out.println(mpdf.size());
    // 调用PDFTextStripper的writeText提取并输出文本
    // stripper.writeText(document, output);
    // System.out.println(stripper.getEndPage());
    // System.out.println( "*****="+stripper.getText(document));
    // System.out.println("*****22=" + stripper.getTextLineMatrix());
    // System.out.println("*****33=" + stripper.getTextMatrix());
    // System.out.println("*****44=" + stripper.getArticleStart());
    // System.out.println("*****55=" + stripper.getArticleEnd());

    } finally {
    if (output != null) {
    // 关闭输出流
    output.close();
    }
    if (document != null) {
    // 关闭PDF Document
    document.close();
    }
    }
    return mpdf; 返回map
  • 相关阅读:
    深入理解Java容器——HashMap
    深入理解Java并发容器——ConcurrentHashMap
    String、StringBuilder和StringBuffer的比较
    接口类、抽象类和普通类的区别
    跟我一起学算法——二项堆
    跟我一起学算法——分治法
    跟我一起学算法——动态规划
    跟我一起学算法——斐波那契堆
    Redis操作三部曲:SpringBoot2.0.X集成Redis + Redis分布式锁 + RedisCacheManager配置
    SpringBoot使用Redis做集中式缓存
  • 原文地址:https://www.cnblogs.com/tutu21ybz/p/6726711.html
Copyright © 2011-2022 走看看