`
limingcai
  • 浏览: 110771 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

从PDF读写到TXT文本

    博客分类:
  • JAVA
阅读更多
package com.purang.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.pdfbox.pdmodel.PDDocument;   
import org.pdfbox.util.PDFTextStripper;  

/**
* @param args
*/

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("E:\\SpringGuide.pdf");   
} catch (Exception e) {   
  e.printStackTrace();   
}   
}   
//先导入PDFBox-0.7.2.jar
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics