- 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;
- 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();
- }
- }
- }
用Java简单的读取pdf文件中的数据
最新推荐文章于 2024-05-27 15:49:44 发布