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. app打包流程

    1.什么是打包 将应用程序统一放在一个后缀是ipa的文件中,然后发给其他人,可以安装在手机上供用户或测试人员安装 2.可安装ipa的前提 ①说清楚是哪一个应用程序(App Id) ②可以安装在哪一台设 ...

  2. iOS 微信支付平台集成

    https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_5

  3. compareTo & toString

    public class UnAssignedRecord implements Comparable<UnAssignedRecord> { private String time; / ...

  4. jQuery cookie插件保存用户登陆信息

    通过jquery cookie插件保存用户登录信息. 代码: <html>  <head>  <title>cookies.html</title>  ...

  5. ajax返回值中有回车换行、空格解决方法

    最近在写一个页面,用jquery ajax来实现判断,刚写好测试完全没有问题,过了两天发现出现问题,判断不成了.后来发现所有alert出来的返回值前面都会加若干换行和空格.(至今不明白,同一台电脑,同 ...

  6. 表格控件表头栏目(Column)与数据表头步

    不用手工增加栏目的列,也就是Column,由数据库的查询结果自动创建. 用的是Delphi2010,安装了Dev,用CxGrid显示数据库查询结果.用什么控件没有关键,道理相同的.

  7. 在EF的code frist下写稳健的权限管理系统:仓储设计(三)

    public class BaseRepository<T>:IBaseRepository<T> where T : class { protected EfConnecti ...

  8. NOJ1142-最大连续和

    最大连续和 时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte总提交 : 1282            测试通过 : 230 ...

  9. EMVTag系列17《9F66 终端交易属性》

    字节:1 8    1 – 支持非接触磁条 (MSD) 0– 不支持非接触磁条 (MSD) 7    1 – 支持非接触PBOC 0– 不支持非接触PBOC 6    1 – 支持非接触qPBOC 0 ...

  10. spring 方法注入

    package com.haut.grain.junit.test; public  class Command {private Object state;public void setState( ...