这里简单介绍2种Java读取PDF文件内容的方法,分别是PDFBox和Spire.PDF,感兴趣的朋友可以尝试一下:
01PDFBox
这是Apache提供的一个免费、开源工具,专门用于操作PDF文档,目前支持加密/解密PDF文档,从PDF文档中导出表单数据,向已有PDF文档追加内容,以及切分PDF文档等,导入项目或工程的话,可以直接下载Jar包,也可以直接Maven引入,如下:
02Spire.PDF
这也是一个专门用于读取PDF文件内容的Java工具包,商业版需要付费购买,也有个人免费版,但功能比较局限,只能提取前10页内容,目前支持文本、图片等内容提取,导入项目或工程的话,可以直接下载Jar包,也可以直接Maven引入,如下:
目前,就分享这2种Java读取PDF文件内容的方法吧。总的来说,整个过程非常简单,只要你有一定Java基础,熟悉一下上面的代码和示例,很快就能掌握的,当然,你也可以使用其他工具包,像iTika等也都非常不错,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。
‘贰’ java 如何访问pdf文件
在Java中,访问PDF文件并提取其文本内容需要使用PDFBox库。首先,你需要导入必要的类,如FileInputStream,PDDocument,PDFParser和PDFTextStripper。以下是一个简单的示例代码:
假设你的PDF文件路径为"F:/pdf/网易技术部的MySQL中文资料.pdf"。创建一个名为PDFReader的类,该类包含一个名为GetTextFromPdf的方法,该方法接收一个文件名作为参数,并返回PDF文件中的纯文本内容。在方法内部,首先创建一个FileInputStream对象,然后使用PDFParser解析该文件。接着,通过PDDocument对象获取PDF文档的内容,最后使用PDFTextStripper提取文本。示例代码如下:
java
import java.io.*;
import org.pdfbox.pdmodel.PDDocument;
import org.pdfbox.pdfparser.PDFParser;
import org.pdfbox.util.PDFTextStripper;
public class PDFReader {
public static String file_path = "F:/pdf/网易技术部的MySQL中文资料.pdf";
// 获取PDF内纯文本信息
public String GetTextFromPdf(String filename) throws Exception {
FileInputStream instream = new FileInputStream(filename);
// 根据指定文件创建输入流
PDFParser parser = new PDFParser(instream);
// 创建PDF解析器
parser.parse();
// 执行PDF解析过程
PDDocument pdfdocument = parser.getPDDocument();
// 获取解析器的PDF文档对象
PDFTextStripper pdfstripper = new PDFTextStripper();
// 生成PDF文档内容剥离器
String contenttxt = pdfstripper.getText(pdfdocument);
// 利用剥离器获取文档
System.out.println("文件长度 : " + contenttxt.length() + "\n");
return contenttxt;
}
public static void main(String args[]) {
PDFReader pdfbox = new PDFReader();
// 生成PDFBoxHello对象
try {
// 获取文档纯文本内容
String doctext = pdfbox.GetTextFromPdf(file_path);
System.out.println("文件内容 : ");
System.out.println(doctext);
System.out.println("文件结束 . ");
} catch (Exception e) {
e.printStackTrace();
}
}
}
这段代码首先通过FileInputStream打开PDF文件,然后利用PDFParser解析该文件,之后通过PDDocument获取PDF文档对象,并使用PDFTextStripper提取文本内容。需要注意的是,为了使用这些类,你需要在项目中引入PDFBox库。
这个例子展示了如何使用Java读取PDF文件中的文本。通过这种方式,你可以将PDF文档转换为纯文本,方便进一步处理或分析。当然,你也可以根据需要对代码进行调整,以满足特定的需求。
‘叁’ 我想问下 JAVA中 如何读取PDF文件里面的内容 谁给个详细的 例子 谢谢
用Java简单的读取pdf文件中的数据:
第一步:下载PDFBox-0.7.2.jar。提供一个下载地址:http://pdfhome.hope.com.cn/Resource.aspx?CID=63844604-5253-4ae1-b023-258c9e324061&RID=20cd8f94-1cee-40b6-a3df-0ef024f8e0d2解压后,把lib文件下的PDFBox-0.7.2.jar,PDFBox-0.7.2-log4j.jar放到你classpath路径下。(我把源码以及jar包都放到下面的附件里,方面你的使用。)
第二步:写个简单的读取pdf文件的程序。(PdfReader.java)
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 = "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);
//注意参数已不是以前版本中的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);
// 设置结束页
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) {
// TODO Auto-generated method stub
PdfReader pdfReader = new PdfReader();
try {
// 取得E盘下的SpringGuide.pdf的内容
pdfReader.readFdf("E:\\SpringGuide.pdf");
} catch (Exception e) {
e.printStackTrace();
}
}
}
这样就简单的完成了从pdf中读取数据了。在你的pdf文件所在的目录下生成一个同名的txt文件。