java pdfbox 解析报错_关于 PDFBox 解析器
今天晚上写了一下PDFBox,但存在一些问题比如,有的PDF文档解析的很好,但解析有些文档则报错.这个问题还没有解决.头痛ING
package jim.myPdfBox;
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 myPdfBox {
/**
* @param args
*/
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);
System.out.println("文件创建成功");
} finally {
if (output != null) {
// 关闭输出流
output.close();
}
if (document != null) {
// 关闭PDF Document
document.close();
}
}
}
public static void main(String[] args) {
myPdfBox test = new myPdfBox();
try {
// 取得C盘下的index.pdf的内容
test.geText("IK.pdf");
} catch (Exception e) {
e.printStackTrace();
}
}
}
java pdfbox 解析报错_关于 PDFBox 解析器相关推荐
- java启动监听器报错_初识 Java-监听器
使用Listener类 当java web应用程序在web容器中运行时,在java web应用程序内部会不断发生各种事件,例如web应用的启动,暂停,销毁等.以及web应用中session开始和结束 ...
- AndroidStudio_安卓原生开发_Json解析报错_要注意这点---Android原生开发工作笔记141
人脸识别的一个pad程序,平时运行没发现问题,但是后来报错了...不知道怎么回事,但是 找到了错误出现的地方: 是因为json字符串解析的时候,报错的: try {jsonObj=new JSONOb ...
- java总是标点符号报错_[javamail]AUTH LOGIN failed;Invalid username or password报错
项目中需要用到javamailAPI,邮箱服务器用的sohu闪电邮,SMTP协议用来发送,赋值代码: Properties props = new Properties(); props.setPro ...
- easy excel date 类型解析报错_实例1:用Python自动批量生成Excel档物料标签
作为一个生产型企业,其产品种类繁多.按照客户要求,每种产品在出货时都需要在包装上贴上如下信息标签,以便识别. 标签上需要包含6种信息,原始资料内容如下: 我们注意到原始信息中的品牌,有些是大写,有些是 ...
- easy excel date 类型解析报错_【今日真题】鼓楼小学教师招聘2017年考试真题及答案解析(上)...
点击上方关注我们! 1:教学内容的安排既要有系统性和连贯性,同时又要保持一定的难度和速度,并注意新旧知识的联系,这主要体现( )的要求.单项选择题A.循序渐进和促进发展相结合B.集体教学和因材施教相结 ...
- 我的java安装老是报错_我的世界总是崩溃怎么办
我的世界总是崩溃怎么办?我的世界作为许多玩家都十分喜爱的模拟经营沙盘类游戏,经常有玩家反映在玩我的世界的时候,游戏总是会出现崩溃或者无法启动的情况,那么如何解决呢? Minecraft 无法正常启动. ...
- java.io.file 报错_关于java.io.FileNotFoundException异常问题?
本帖最后由 郝强勇 于 2013-3-14 16:18 编辑 下面的代码是客户端在访问servlet时,在servlet中调用数据库操作层UserDao对象中的update方法,haha.proper ...
- java jacoco覆盖率报错_接口测试代码覆盖率(jacoco)方案分享
在做接口测试过程中,为了达到量化接口测试用例效果的目的,引入了代码覆盖率作为重要指标,在查阅相关文档和资料通过实践之后,大概得到了一个方案.如图: 备注:该方案略微复杂了一些,原因在于服务JVM所在的 ...
- easy excel date 类型解析报错_两个日期相差多少天,你还在一天天的数吗?用Excel轻松完成计算...
在我们的日常工作中,经常要计算两个日期之间相差多少天,两个时间之间相差多少小时等等,诸如此类的日期.时间之差怎么计算呢?今天小编就和大家分享如何利用Excel函数来完成计算. 一.计算年数.月数.天数 ...
最新文章
- OpenCv中实现了三种立体匹配算法:
- 7、Node.js EventEmitter
- 数据挖掘学习笔记之人工神经网络(二)
- css高级教程第一章笔记
- 使用PyTorch训练图像分类器
- 密码篇——对称加密—3DES
- 中国稀土永磁材料市场发展态势及产销需求规模预测报告2021版
- Polycarp Training
- 怎么拆计算机主机,技术编辑教您电脑机箱怎么拆
- Spark SQL(二)之DataSet操作
- 学习Lucene.Net 2.1常用的一些网址
- hadoop 依赖式job_Java项目中使用XXL-JOB调度框架
- MES系统源码 MES系统功能介绍
- grads 相关系数_气象绘图软件GrADS高级使用技巧
- [区块链]对话区块链人工智能顶级实力公司ObEN
- 侧馈矩形微带天线设计报告
- 微擎修改服务器域名,微擎服务器ip地址修改
- 实体企业践行远程办公,云ERP是您变革利器
- python裁剪图片边缘模糊_用cv2模糊部分图像后的锐利边缘
- 数据结构之简单迷宫求解