java读取pdf文件内容

 

import java.io.File;   
import java.io.FileOutputStream;   
import java.io.OutputStreamWriter;   
import java.io.Writer;   
import java.net.MalformedURLException;   
import java.net.URL;   

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.util.PDFTextStripper;

 public class PdfReader {   
 public void readFdf(String file) throws Exception {   
  // 是否排序   
  boolean sort = false;   
  // pdf文件名   
  String pdfFile = file;   
  // 输入文本文件名称   
  String textFile = null;   
  // 编码方式   
  String encoding = "UTF-8";   
  // 开始提取页数   
  int startPage = 1;   
  // 结束提取页数   
  int endPage = Integer.MAX_VALUE;   
  // 文件输入流,生成文本文件   
  Writer output = null;   
  // 内存中存储的PDF Document   
  PDDocument document = null;   
  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);   
   // 调用PDFTextStripper的writeText提取并输出文本   
   stripper.writeText(document, output);   
  } finally {   
   if (output != null) {   
    // 关闭输出流   
    output.close();   
   }   
   if (document != null) {   
    // 关闭PDF Document   
    document.close();   
   }   
  }   
 }   
 /**  
  * @param args  
  */  
 public static void main(String[] args) {   
  // TODO Auto-generated method stub   
  PdfReader pdfReader = new PdfReader();   
  try {   
   // 取得E盘下的SpringGuide.pdf的内容   
   pdfReader.readFdf("d:\\b.pdf");   
  } catch (Exception e) {   
   e.printStackTrace();   
  }   
 }   
    


}

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值