1.首先下载pdfbox-app-1.8.10.jar(下载地址:http://pdfbox.apache.org/download.html)

2.将pdfbox-app-1.8.10.jar加载到eclipse工程中

1.新建java工程:Flie->New->Java Project,如PdfToText工程,然后右键该工程BuildPath->Configure Bulid Path..,单击Libaries,点击Add External JARs,将刚才下载好的pdfbox-app-1.8.10.jar添加进去,点击Order and Export,将刚才的包打勾即可,最后点击ok。

2.新建一个PdfboxTest的类,以下就是源代码

import java.io.File;
import java.io.FileOutputStream;
import java.io.Writer;
import java.net.MalformedURLException;
import java.net.URL;
import java.io.OutputStreamWriter;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.util.PDFTextStripper;
//Author:Yiutto
//destination:主要用于pdf文件批处理转换为text文档 public class PdfboxTest {
public void getText(String file) throws Exception {
// 是否排序
boolean sort = false;
// pdf文件名 @1 “E:\\data\\Inputpdf\\”是pdf文件夹根目录,所有的pdf文件都放在该目录下(自己可以设置)
String pdfFile = "E:\\data\\Inputpdf\\" + 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 (file.length() > 4) {
File outputFile = new File(file.substring(0,
file.length() - 4) + ".txt");
textFile = outputFile.getName();
}
} catch (MalformedURLException e) {
// 如果作为URL装载得到异常则从文件系统装载
document = PDDocument.load(pdfFile);
if (file.length() > 4) {
textFile = file.substring(0, file.length() - 4) + ".txt";
}
}
// 文件输入流,写入文件到textFile @2 “E:\\data\\Outputtxt\\”是text文档输出目录(自己可以设置)
output = new OutputStreamWriter(new FileOutputStream(
"E:\\data\\Outputtxt\\" + 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) {
// @3 “E:\\data\\Inputpdf\\”是pdf文件夹根目录,所有的pdf文件都放在该目录下(自己可以设置)
File input = new File("E:\\data\\Inputpdf\\");
if (input.isDirectory()) {
String[] fileList = input.list();
PdfboxTest test = new PdfboxTest();
System.out.println(input.toString()+"\n");
for (String file : fileList) {
try {
System.out.println(" "+file
+ " is prepared converting to text....");
test.getText(file);
System.out.println(" "+file + "is done.\n");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
} }

小篇要说:@1 “E:\\data\\Inputpdf\\”是pdf文件夹根目录,所有的pdf文件都放在该目录下(自己可以设置)

               @2 “E:\\data\\Outputtxt\\”是text文档输出目录(自己可以设置)

               @3 “E:\\data\\Inputpdf\\”是pdf文件夹根目录,所有的pdf文件都放在该目录下(自己可以设置)

               这3句注释行下的代码可以根据自己具体情况更改,已经介绍的这么详细了,希望大家点赞!!

3.实验的结果如下图:

如何用pdfbox-app-1.8.10.jar批处理将pdf文档转换成text文档的更多相关文章

  1. 如何用C#把Doc文档转换成rtf格式

    先在项目引用里添加上对Microsoft Word 9.0 object library的引用 using System; namespace DocConvert { class DoctoRtf ...

  2. **app后端设计(10)--数据增量更新(省流量)

    在新浪微博的app中,从别的页面进入主页,在没有网络的情况下,首页中的已经收到的微博还是能显示的,这显然是把相关的数据存储在app本地. 使用数据的app本地存储,能减少网络的流量,同时极大提高了用户 ...

  3. app后端设计(10)--数据增量更新

    在新浪微博的app中,从别的页面进入主页,在没有网络的情况下,首页中的已经收到的微博还是能显示的,这显然是把相关的数据存储在app本地. 使用数据的app本地存储,能减少网络的流量,同时极大提高了用户 ...

  4. 如何用一个app操作另外一个app.比如微信群控那样的

    如何实现一个app.控制另外的app,比如市面上群控微信的,是用测试工具的原理?还是什么模拟点击的原理? 如何用一个app操作另外一个app.比如微信群控那样的 >> android这个答 ...

  5. 通过pinyin4j.jar将(汉字拼音混合字符串)转化成字母首字母

    通过pinyin4j.jar将(汉字拼音混合字符串)转化成字母首字母 例如 我的中国心    ==> wdzgx 我的中国心ya ==> wdzgxya woai我的中国 ==> w ...

  6. hbuilder中的wap2app (将M站快速转换成App的开发框架)使用过程有关原生标题的关闭

    首先,我最近在做有关将M站快速转换成App的项目,在网上看了很多,最终结合同学的推荐,我选择了hbuilder,有关于hbuilder的下载还有具体使用方法,官网都有详细的说明,我就不介绍了,我重点介 ...

  7. Java文档注释导出帮助文档和项目的jar包导入和导出。

    1.1      文档注释导出帮助文档 在eclipse使用时,可以配合文档注释,导出对类的说明文档,从而供其他人阅读学习与使用. 通过使用文档注释,将类或者方法进行注释用@简单标注基本信息.如@au ...

  8. 将jar文件转换成exe可执行文件[转]

    将jar文件转换成exe可执行文件: exe文件使用方便,而且还可以提高源码及资源的安全性,但同时也失去了java的初衷--跨平台性. 如果你坚持要转换成exe文件,请按以下方式进行: 利用exe4j ...

  9. spring boot将jar包转换成war包发布

    spring boot将jar包转换成war包发布步骤 将<packaging>jar</packaging>修改为<packaging>war</packa ...

随机推荐

  1. ittype导师课程 - SAP顾问课程,云课堂,个性辅导

    ittype致力于成为最专业的<企业管理研究+管理信息化需求研究+解决方案+项目+人才>全生态链服务与功能平台,平台网址:www.ittype.com. 平台由导师+学员模式,导师教导学员 ...

  2. CentOS学习笔记--Tomcat安装

    Tomcat安装 通常情况下我们要配置Tomcat是很容易的一件事情,但是如果您要架设多用户多服务的Java虚拟主机就不那么容易了.其中最大的一个问题就是Tomcat执行权限.普通方式配置的Tomca ...

  3. javac 不是内部或外部命令

    安装好JDK后 用     java                 命令测试OK! 用     java -version    命令测试OK! 用     javac                ...

  4. 导入Excel的时候使用TransactionScope事务控制来进行数据

    最近,项目需要将Excel里面的数据导入到数据库里面,但是由于Excel里面的数据的合法性和数据格式的不确定性.所以不可能每读出一条数据,就保存到数据库中. 这就使用到了TransactionScop ...

  5. POJ C++程序设计 编程作业—类和对象 编程题#1

    编程题#1 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 下面程序输出的结 ...

  6. Windows 2008 R2 X64 安装WebsitePanel(WSP虚拟主机管理面板)

                   Windows 2008 R2 X64  安装WebsitePanel(WSP2.0虚拟主机管理面板) 估计很多同学都还不知道WebsitePanel是什么东东吧,Web ...

  7. Eruda——手机网页前端调试面板

    前言 进行移动端网页开发时,想要查看手机浏览器信息从来都不是一件容易的事.特别是当目标环境为APP内置WebView,需要调用特定的JsBridge接口时,你根本都干不了什么,只能一遍又一遍地修改代码 ...

  8. 短信接口调用以及ajax发送短信接口实现以及前端样式

    我们短信api用的是云信使平台提供的非免费短信服务:官网提供的demo有两种,分别是function加其调用.class文件加其调用. 在这里我们用class文件加调用: 首先,ThinkPHP里面自 ...

  9. pthreads多线程数据采集

    以前使用curl的多线程并不是真正的多线程,只是一种模拟的多线程,现在使用pthreads来实现真正意义上的多线程. 下载: windows下: http://windows.php.net/down ...

  10. 【Apache】2.4.6版本的安装和配置