Java那些事之pdf读取
今天说说java中的pdf读取,实话说,这是一个很恼人的任务。现在网络上的pdf各种各样,分析出来的文本也是千差万别,目前最流行的jar包pdfbox也只能做到把文字分析出来,并无法很好的控制分析的顺序,格式,字体等信息。(也许可以,是我对pdfbox了解还不够,如果是这样的话,大家一定要告诉我~先谢过了哈。)这给后续的工作带来了很大的麻烦。比如我想提取pdf的一些关键词或标题等有用信息,而分析出来的文本大多没有规律可言,甚至不同pdf分析的顺序也不一样,有些分析出来第一行是标题,有些标题要到第十行甚至更靠后,总体说来这个任务远远没有达到我之前的预期。这里介绍一下,一个为了和大家交流一下,更重要的目的在于向各位高手们学习,看看大家是否有更好的办法来处理pdf的信息,而不光单单是读取pdf的字符串。
pdfbox的下载和配置我就不多说了,就跟加别的jar包没有区别。
下面直接上代码。
代码很简单,但是分析出来的内容也让人很抓狂,刚才说过了,什么格式的都有,甚至有些英文pdf分析出来词与词之间没有空格……有些又每个字母之间有空格,这到底是为什么呢?请教各位。
public void get(String pdfPath) throws Exception {
InputStream input = null;
File pdfFile = new File( pdfPath );
PDDocument document = null;
try
{
input = new FileInputStream( pdfFile );
//加载 pdf 文档
PDFParser parser = new PDFParser(input);
parser.parse();
document = parser.getPDDocument();
//获取内容信息
PDFTextStripper pts = new PDFTextStripper();
String content = "";
try
{
content = pts.getText( document );
}
catch(Exception e)
{
throw e;
}
System.out.println(content);
}
catch(Exception e)
{
throw e;
}
finally
{
if( null != input )
input.close();
if( null != document )
document.close();
}
}
InputStream input = null;
File pdfFile = new File( pdfPath );
PDDocument document = null;
try
{
input = new FileInputStream( pdfFile );
//加载 pdf 文档
PDFParser parser = new PDFParser(input);
parser.parse();
document = parser.getPDDocument();
//获取内容信息
PDFTextStripper pts = new PDFTextStripper();
String content = "";
try
{
content = pts.getText( document );
}
catch(Exception e)
{
throw e;
}
System.out.println(content);
}
catch(Exception e)
{
throw e;
}
finally
{
if( null != input )
input.close();
if( null != document )
document.close();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库