下载网址:
http://sourceforge.net/projects/pdfbox/

最新版本为0.7.3
从解压包中的external目录复制以下jar包:
bcmail-jdk*.jar
bcprov-jdk*.jar
checkstyle-all-*.jar
FontBox-*.jar
lucene-core-*.jar
再从lib中复制PDFBox-*.jar 到项目lib中.

以下是一个例子:

package ch7.pdfbox;

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;

/**
 * 将pdf提取转换为txt文档
 *
 * @author Administrator
 *
 */
public class PdfboxTest {
 public static final String DEFAULT_ENCODING = "UTF-8";

// "ISO-8859-1";
 // "ISO-8859-6";
 // "US-ASCII";
 // "UTF-8";
 // "UTF-16";
 // "UTF-16BE";
 // "UTF-16LE";
 public void geText(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);
    document = PDDocument.load(url);
    // 获取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装载得到异常则从文件系统装载
    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();
   }
  }
 }

public static void main(String[] args) {
  PdfboxTest test = new PdfboxTest();
  try {
   test.geText("D://ride//Lucene.pdf"); // 转换为D://ride//Lucene.txt
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

}

PDFBox下载及将pdf提取转换为txt文档相关推荐

  1. 如何把pdf转换为txt文档,pdf转txt的好方法

    如何把pdf转换为txt文档,pdf转txt的好方法.txt文档是每个电脑都自带的文字编辑工具.而pdf文件的缺点就是在于文件本身无法进行编辑.修改.当pdf文件中的内容产生错误时,就需要将pdf文件 ...

  2. 怎样使用PDF编辑器从TXT文档新建PDF文档

    编辑器中可以从TXT文档新建PDF文档吗,我们知道,PDF文档是可以由其他的文档格式转化而来的,那么,如何使用PDF编辑器从TXT文档新建PDF文档呢. 小编使用的迅捷PDF编辑器作为专业PDF文件编 ...

  3. 如何快速将PDF文件转换为Word文档

    PDF文件是一个广泛使用的电子文档格式,其被广泛应用于各种领域,包括教育.商业和政府.虽然PDF文件非常实用,但有时你需要将其转换为Word文档,以便更方便地编辑和处理.以下是几种快速将PDF文件转换 ...

  4. 如何将PDF格式转换为WORD文档

    经常在PDF形式上看到有好的文件时,想把它拿出来,但是却是不行,所以我第一步就是找一下有没有可以到PDF格式与WORD文档的转换,在网上找了一下,原来还真的有很多,今天我就把这些方法也传上来,不过我也 ...

  5. pdf如何转换为word文档

    我们经常会遇到需要将PDF转换为WORD文档,对于我来讲,有些PDF没有目录,看起来非常不方便,于是就特别想转成WORD,然后增加目录,想看某一节内容时,快速查找. 这里我总结了一些方法,后续也会不断 ...

  6. 将PDF文件转换为Word文档和其他格式

    Most of us know easy ways to turn a Word or other text document into a PDF, but what if we need to c ...

  7. 苹果手机如何将PDF文件转换为Word文档

    作为职场小白一遇到文件转换就头疼,特别是下班了之后手机接收到的PDF文件,电脑又不在身边,手机又不会转换,是不是很多人都有我这样的苦恼,但是小编今天就在这告诉大家,手机上市可以实现PDF文件转换Wor ...

  8. python读取word element_Python:通过解析word将文本从docx提取到txt/文档.xm

    我想从docx文件提取文本到简单的txt文件. 我知道这个问题可能看起来很简单或者很琐碎(我希望会是这样),但我浏览了几十个论坛主题,花了几个小时试图自己解决,但没有找到解决办法...在 如果我需要没 ...

  9. pdf怎么转换为word文档?简单三步搞定pdf转word

    PDF格式是一种常见的电子文件格式,在许多公司.学校和机构的文件中广泛应用.它具有不受打开软件限制的内容和格式展示优势,但在需要进行编辑和修改时,将其转换为Word格式会更为方便.今天,我将向大家介绍 ...

最新文章

  1. android蓝牙4.0(BLE)开发之ibeacon初步
  2. 祝福互动html页面,祝福.html
  3. 8位alu运算器(vhdl语言)_C语言中signed char类型,能表示-128到127,为什么负数多一位?...
  4. socket.io的 Python客户端中文encode问题
  5. kafka php 0.8,php5.6 centos7 kafka0.8.1
  6. Java8-本地缓存
  7. Exchange 2010 迁移到 Exchange 2013 (二)迁移用户邮箱
  8. a算法和a*算法的区别_详解SPWM与SVPWM的原理、算法以及两者的区别
  9. 【华为云技术分享】Linux内核编程环境 (2)
  10. setlength java_Java StringBuilder setLength()方法与示例
  11. mysql数据库模糊查询简介
  12. Codeforces 797B - Odd sum
  13. Java Web开发应用中要掌握的一些感念 疯狂JAVA
  14. Android App Architecture使用详解
  15. mvc基于 ajax实现菜单下拉列表
  16. 瑞星杀毒软件linux序列号,瑞星杀毒软件2007光盘零售版是面向 Linux的?
  17. strcmp()函数
  18. 《ARM64体系结构编程与实践》开始预订了
  19. AppleTalk--网络大典
  20. shiro权限控制登陆成功页面跳转问题

热门文章

  1. 电脑卡顿打字卡顿:开启PLSQL Developer后电脑卡顿打字卡顿
  2. 如何提高效率(In memory of Aaron Swarts)
  3. win7 + Caffe CPU版本安装
  4. js对象数组赋值或者新增新对象
  5. 最新MKCMS米酷影视V6.2.4原版及米酷CMS(PHP7)双版
  6. 计算机毕业论文框架介绍重复,计算机毕业论文:ML在多Agent系统中的应用
  7. C语言编程题——猜凶手
  8. MySQL单台物理机上单实例多库与多实例单库性能测试
  9. exe4j打包问题解决方案
  10. 珠宝商城小程序开发的价值和优势