为什么要写这段代码,在
这个文章中已经说了。其实网上关于java读取pdf文件的文章很多,我这里只是把自己的实践记录下来,供以后参考。读写pdf的库有很多,这里使用PDFBox 0.7.3。PDFBox是一个开源的对pdf文件进行操作的库。
首先下载
PDFBox最新版本,并解压缩。为方便描述,假设解压缩后的目录是$PDFBox_HOME。
将$PDFBox_HOME/lib/PDFBox-0.7.3.jar加入classpath。如果编译过程中提示找不到类,可能是缺少某些库,要将$PDFBox_HOME/external中的所有jar文件都加入classpath吧。
读取文本的代码如下:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.pdfbox.pdfparser.PDFParser;
import org.pdfbox.pdmodel.PDDocument;
import org.pdfbox.util.PDFTextStripper;
public class SimplePDFReader {
/**
* simply reader all the text from a pdf file.
* You have to deal with the format of the output text by yourself.
* 2008-2-25
* @param pdfFilePath file path
* @return all text in the pdf file
*/
public static String getTextFromPDF(String pdfFilePath) {
String result = null;
FileInputStream is = null;
PDDocument document = null;
try {
is = new FileInputStream(pdfFilePath);
PDFParser parser = new PDFParser(is);
parser.parse();
document = parser.getPDDocument();
PDFTextStripper stripper = new PDFTextStripper();
result = stripper.getText(document);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (document != null) {
try {
document.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return result;
}
}
得到PDF的文本内容之后,自己根据文件的格式,取得想要的文本(这里我找的就是文章的标题,在文本中恰巧都是文件的第一行的内容),然后通过java的File相关api,对文件进行更名操作。
文件更名代码如下:
import java.io.File;
import java.io.FilenameFilter;
public class PaperNameMender {
public static void changePaperName(String filePath) {
//使用SimplePDFReader得到pdf文本
String ts = SimplePDFReader.getTextFromPDF(filePath);
//取得一行内容
String result = ts.substring(0, ts.indexOf('\n'));
//得到源文件名中的最后一个逗点.的位置
int index = filePath.indexOf('.');
int nextIndex = filePath.indexOf('.', index + 1);
while(nextIndex != -1) {
index = nextIndex;
nextIndex = filePath.indexOf('.', index + 1);
}
//合成新文件名
String newFilename = filePath.substring(0, index) + " " +
result.trim() + ".pdf";
File originalFile = new File(filePath);
//修改文件名
originalFile.renameTo(new File(newFilename));
}
}
分享到:
相关推荐
它可以创建一个新PDF文档,操作现有PDF文档并提取文档中的内容。 它具有以下特性: 1.将一个PDF文档转换输出为一个文本文件。 2.可以从文本文件创建一个PDF文档。 3.加密/解密PDF文档。 4.向已有PDF文档中追加内容。 ...
Extract Text – 使用PDFBox,您可以从PDF文件中提取Unicode文本。 Split & Merge – 使用PDFBox,您可以将单个PDF文件分成多个文件,并将它们合并为一个文件。 Fill Forms – 使用PDFBox,您可以在文档中填写表单...
pdfbox 提取 pdf 中 文字和图片 并 可转 html 分2个文件,一个专门提取文本,内容可转为html,另一个文件专门用来提取图片,大家可自行整合为一个文件。使用pdfbox最新提取图片的方法。
pdfbox 提取 pdf 中图片文件以及读取pdf的文本信息,压缩包中包含必备jar包
pdf文档的内容都是坐标定位的,文档内容主要包含文本、图片、线条;需要用到pdfbox和pdf2dom两个依赖包
开源PdfSharp提取读取PDF文档里text内容方法
利用PDFBox的IKVM版本能比较好地从PDF中提取文本 并且能够根据需要显示 行分隔符、字段分隔符、也分隔符等等 便于使用
PDFBox(一个BSD许可下的源码开放项目)是一个为开发人员读取和创建PDF文档而准备的纯Java类库。它提供如下特性: 提取文本,包括Unicode字符。 和Jakarta Lucene等文本搜索引擎的整合过程十分简单。 加密/解密...
这里包含了一个FontBox-0.1.0.jar和pdfbox-0.7.3.jar两个jar包,还有一个PdfReader.java文件,很简单,建立一个...把main方法里面的pdf文件路径改下,最后右击执行java类就OK了! 目前无法批量执行!需要进一步优化!
这是用于提取pdf文件格式的文本提取工具,可以读取pdf格式的文本。
PdfPig此项目允许用户读取和提取PDF文件中的文本和其他内容。 此外,该库可用于创建包含文本和几何形状的简单PDF文档。 此项目旨在p PdfPig此项目使用户可以读取和提取PDF文件中的文本和其他内容。 此外,该库可用于...
使用PDFBox库处理PDF文档 PDFBox是一个开源的Java库,可以用于创建、编辑和提取PDF文档的内容。它提供了丰富的API,...它提供了一系列的API,可以轻松实现PDF文件的读取、写入和转换,包括添加水印、提取文本等功能。
TrapRange:一种提取PDF文件中的表内容的方法 资料来源: : 更新 从命令行运行。 键入java -jar traprange.latest.jar -h获得帮助,或查看文件test-command-line.sh示例 介绍 表数据结构是文档中最重要的数据结构...
该项目允许用户读取和提取PDF文件中的文本和其他内容。 此外,该库可用于创建包含文本和几何形状的简单PDF文档。 该项目旨在将移植到C#。 从0.0.x迁移到0.1.x? 使用本指南: 安装 该软件包可通过发布选项卡或从...
最近有个项目是要求将PDF版的电子发票,解析成文本格式,要求各个名称都对应,刚开始用的是PDFTextStripper.getText(),发现不能准确的抓到自己想要的数据,后来想了个办法,使用Rectangle,画多个矩形,精准定位,...
使用开发的文档布局分析。 来自:文档布局分析是对文本文档的扫描图像中的感兴趣区域进行标识和分类的过程。...相关项目从C#中的PDF中读取文本内容(PdfBox的端口) (港) -从PDF文件中提取表 ( 端口
PDFParser可以从文本版本的PDF中读取数据 它读取元数据和文件内容 以下是该应用的一些快照 #代码 公共类PDFBoxActivity扩展了AppCompatActivity { private ProgressBar mDataProgress; private Button btnPdf,...
PDF文件:PDFBox解析PDF文件 FontBox:处理PDF字体的Java类库 JempBox处理XMP元数据 的Java类库 Office文档:POI项目 POI读写Excel、Word、PPT文件 POI-HSMF读写Outlook POI-HDGF读写Visio POI-HPBF支持Publisher ...
PDF处理器PDF Processor从PDF读取测试,获取该文本的QR码,然后将其写入另一个PDF。 还将提取的文本写入JSON文件。创建数据库转到终端(在Microsoft Windows中,命令Prompt cmd )。 使用可以创建新用户的用户打开...