java读取pdf文件的时候出现异常

作者&投稿:董富 (若有异议请与网页底部的电邮联系)
求助:java读取pdf文件问题.我用下面代码读取本地的pdf文件没问题但是读取远程的pdf文件就报异常~

用UrlConnetion类, 读取http:\www.dt158.com\pdf\8928991747799539758.pdf ,
UrlConnection 的 openStream() 方法获得一个读取流,就可以读取了

缺包吧? 找不到类呀

当时想把pdf中的文字读取成txt文件,方便我的手机阅读,写了以下代码,解决了这个小问题

所需要的包:PDFBox-0.7.3.zip 解压文件夹下:external下的全部,lib文件下的PDFBox-0.7.3.jar

注意:只能读取文本格式的pdf,如果pdf为图片格式的,本程序不能使用!

程序介绍:本程序将文本格式pdf中的文字读取出来,存入与pdf文件同文件名的TXT文本文档。

支持中文,但是在某些文字上会出现乱码.

package com.small;

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 = "GB2312";
// 开始提取页数
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);
// 设置结束页
System.out.print(stripper.getText(document));
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) {
Pdfreader pdfReader = new Pdfreader();
try {
// 读取pdf文件
pdfReader.readFdf("d:\\2\\D.pdf");
} catch (Exception e) {
e.printStackTrace();
}
}

}
http://hi.baidu.com/websays/blog/item/bb5a9daa950dc1baca130c7f.html

ava.lang.NoClassDefFoundError: org/fontbox/cmap/CMapParser

很明显了少了一个jar包,从了、org/fontbox/cmap/CMapParser来看,jar包名字可能带fontbox的名字,你在百度上检索下 fontbox .jar试试能不能找到这个jar包呢?

什么异常具体一点,你缺少jar包


java读取pdf文件的时候出现异常
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 ...

如何找出电脑里所有的PDF文档
1.要实现pdf文件的查找,需要下载专门的pdf浏览工具,adobe reader就是官方发布的一款pdf文件浏览工具,可以实现pdf文档的查找功能 2.在软件管家中搜索“adobe reader”,然后在搜索结果中下载并安装“adobe reader”软件 3.下载完成后即可自动关联pdf文件,然后在电脑磁盘中打开您需要查找的pdf文件。打开之后...

PSP读取的文件都是什么格式的
1.PSP自身能够读取的视频是MP4格式 使用自制软件PPA能够读取PMP 用PSPTUB能够读取FLV 2.游戏支持的是ISO格式以及CSO格式 使用模拟器可以支持GBA游戏 PS游戏 以及一些街机游戏 3.PSP支持MP3 WMA(需要自己在主机设置里面激活)4.PSP支持JPG,GIF之类的 蛮多的 5.PSP自身不支持小说阅读功能 使用自制软件...

请达人推荐一本C#入门的书籍,本人用过ava做过项目,但是对C#以及.net...
参考资料:http:\/\/www.flighty.cn\/html\/book\/20110510_122.html

自学Java 怎么入门?
在Java基础板块中有6个子模块的学习:基础语法,可帮助你建立基本的编程逻辑思维;面向对象,以对象方式去编写优美的Java程序;集合,后期开发中存储数据必备技术;IO,对磁盘文件进行读取和写入基础操作;多线程与并发,提高程序效率;异常,编写代码逻辑更加健全;网络编程,应用服务器学习基础,完成数据的远程传输。 学习该阶段,可...

如何创建一个PDF文件? 详细
如何创建一个 PDF 文件? 详见以下代码: <% Option Explicit Sub CheckXlDriver() On Error Resume Next Dim vConnString Dim oConn, oErr vConnString = "DRIVER={Microsoft Excel Driver (*. xls)} ;DBQ=NUL: " ' 连接 NUL Set oConn = CreateObj ect("ADODB. Connection") oConn. Open...

浠水县19883243852: Win10系统阅读PDF文件时出现乱码怎么办 -
繁波珠贝: 看一下用的是什么软件,是不是绿色版Foxit Reader绿色版,因为是绿色版好多插件包都没有带.方法一:在软件帮助中选择检查更新,选中东亚语言包和JPEG2000/JBIG解码器,下载安装即可.方法二:也可以到foxit官网下载:下载这两份文件(fpdfcjk.bin and fxdecodl.dll),并且把它们保存到OCX所在的目录里.

浠水县19883243852: java中文件打开和关闭的问题 -
繁波珠贝: 根据我的编程经验,也会遇到文件忘记close的情况,我来说一下我在这种情况下发生了什么问题.我打开一个文件,往里面写东西,如果忘了关闭,在buffer中的内容不会写到文件里面去,也就是有时候明明已经写入内容了,当你打开文件看了下发现会少掉了一部分.而如果在程序推出前close了文件流,则不会发生这种情况.所以文件用完了无论是读写都要养成关闭的好习惯,希望我的回答能够帮到你.

浠水县19883243852: 手机漫画的格式只有umd格式么? -
繁波珠贝: 电子书的主要格式有PDF、EXE、CHM、UMD、PDG、JAR、PDB、TXT、BRM等等,目前很多流行移动设备都是支持其阅读格式的.手机终端常见的电子书格式为UMD、JAR、TXT这三种. umd是掌上书院创立的手机电子书文件格式,由于...

浠水县19883243852: 用javac打开java文件时报错 -
繁波珠贝: 代码应该没问题.拒绝访问.,你把这个文件放到其他盘符看看.可能没权限.既然加分了.留个qq吧.包解决.

浠水县19883243852: JAVA中通过BufferedReader的reader.readLine()方法按行读取文件时,由于有行内换行符将一行读成了两行? -
繁波珠贝: 你好,能不能把你的代码贴上来看看,我也试着读取了一下,然而并没有读取两行啊.BufferedReader br = new BufferedReader(new FileReader("1.txt"));String line = "";while((line = br.readLine())!=null){System.out.println(line);}读出来是这样的:123 \r\n 456

浠水县19883243852: java中读取文件,用readline()读怎么会有的行读不到? -
繁波珠贝: while(br.ready()){ System.out.println(br.readLine()); xmlstr.append(br.readLine()); } 每出现一次br.redLine()它就读一行,你这个循环里面写了两次,它就执行了两次 System.out.println(br.readLine()); 执行了第一行 xmlstr.append(br.readLine())...

浠水县19883243852: Java判断文件是否为图片,如果用ImageIO读取的文件名有中文出出现异常,这个怎么处理 -
繁波珠贝: 根据常见的图片文件,读头几个字节进行判断........如果还报异常,就说明文件的头对、但不是真的图片

浠水县19883243852: 下载证书时出现这个ErrorMessage:java.lang.NullPointerException -
繁波珠贝: 估计是银行网站的系统原因,这个在java里面是空指针异常,意思是没有这个东西.

浠水县19883243852: 我用JCreator时 编译文件就出现 Error : Invalid path, \bin\javac.exe - classpath,怎么回事呢,求解答 -
繁波珠贝: JCreator这种编辑器和环境变量是没关系的,它有自己配置变量的一套系统.也就是说即便你没有配置jdk,但只要是下载了jdk,JCreator就可以用.所以问题的根源是你的JCreator软件配置的问题.你要运行的是编译一个名为Addition.java 的文件,用到了类库,但是不管是你的类库路径还是还是源文件路径,都很奇怪,貌似都是在一个临时文件夹下,我不确定是不是你从一个压缩包里面直接打开的.从新配置一下JCreator的libpath,还有就是Addition.java这个文件保存在一个正常的文件夹下,比如E盘下.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网