java 提取文字内容_Java 提取PDF文本内容
概述
一般来说,我们无法对PDF文档格式的内容进行修改编辑,但当我们确有此需求时,可通过提取文本内容的方式来实现。本文就将介绍如何通过Java代码来提取PDF文档中的文本内容。
此教程用到的第三方控件是Free Spire.PDF for Java(免费版)。根据不同需求,它可以支持以下三方面的提取功能。
提取PDF文档中的所有文本内容
提取PDF指定页面的文本内容
提取PDF指定区域的文本内容
Jar包的获取及导入
在运行代码前,需将Free Spire.PDF for Java控件中的Jar包导入IDEA中。导入方式有两种:其一,在官网上下载产品包,解压后将lib文件夹下的Spire.Pdf.jar手动导入IDEA;其二,在IDEA中创建一个Maven项目,然后在pom.xml文件中键入以下代码,最后点击“Import Changes”即可。
com.e-iceblueid>
http://repo.e-iceblue.cn/repository/maven-public/url>
repository>
repositories>
e-icebluegroupId>
spire.pdf.freeartifactId>
3.9.0version>
dependency>
dependencies>
示例代码
示例1 提取PDF文档中的所有文本内容
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import java.io.*;
public class ExtractAllText{ public static void main(String[] args) { //创建PdfDocument实例
PdfDocument doc=new PdfDocument(); //加载PDF文档
doc.loadFromFile("C:UsersTest1DesktopSample.pdf"); //创建StringBuilder实例
StringBuilder sb=new StringBuilder(); PdfPageBase page; //遍历PDF页面,获取每个页面的文本并添加到StringBuilder对象
for(int i=0;itrue)); } FileWriter writer; try { //将StringBuilder对象中的文本写入到文本文件
writer = new FileWriter("output/ExtractAllText.txt"); writer.write(sb.toString()); writer.flush(); } catch (IOException e) { e.printStackTrace(); } doc.close(); }
}
提取效果:
示例2 提取PDF指定页面的文本内容
import com.spire.pdf.*;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class ExtractTextFromParticularPage{ public static void main(String[] args) throws IOException { //加载PDF文档
PdfDocument pdf = new PdfDocument(); pdf.loadFromFile("C:UsersTest1DesktopSample.pdf"); //创建.txt文件,用于保存提取的文本
String result = "output/extractTextFromAParticularPage.txt"; File file=new File(result); if(!file.exists()){ file.delete(); } file.createNewFile(); FileWriter fw=new FileWriter(file,true); BufferedWriter bw=new BufferedWriter(fw); //获取第一页的文本
PdfPageBase page = pdf.getPages().get(0); String text = page.extractText(true); //String text = page.extractText(false);
bw.write(text); bw.flush(); bw.close(); fw.close(); }
}
提取效果:
示例3 提取PDF指定区域的文本内容
import com.spire.pdf.*;
import java.awt.geom.Rectangle2D;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class ExtractTextFromSpecificArea{ public static void main(String[] args) throws IOException { //加载PDF文档
PdfDocument pdf = new PdfDocument(); pdf.loadFromFile("C:UsersTest1DesktopSample.pdf"); //创建.txt文件,用于保存提取的文本
File file=new File("output/ExtractTextFromASpecifiedArea.txt"); if(!file.exists()){ file.delete(); } file.createNewFile(); FileWriter fw=new FileWriter(file,true); BufferedWriter bw=new BufferedWriter(fw); //获取第一页
PdfPageBase page = pdf.getPages().get(0); //提取第一页指定区域的文本
String text = page.extractText(new Rectangle2D.Float(80, 20, 500, 110)); bw.write(text); bw.flush(); bw.close(); fw.close(); }
}
提取效果:
文章来源: segmentfault.com,作者:Millie_Yellow,版权归原作者所有,如需转载,请联系作者。
原文链接:segmentfault.com/a/1190000038215489
java 提取文字内容_Java 提取PDF文本内容相关推荐
- 如何用Python批量提取PDF文本内容?
本文为你展示,如何用Python把许多PDF文件的文本内容批量提取出来,并且整理存储到数据框中,以便于后续的数据分析. 问题 最近,读者们在后台的留言,愈发五花八门了. 写了几篇关于自然语言处理的文章 ...
- python怎么读取pdf为文本_轻松用Python批量提取PDF文本内容,这个小技巧告诉你!...
轻松用Python批量提取PDF文本内容,这个小技巧告诉你!-1.jpg (22.73 KB, 下载次数: 0) 2018-9-7 08:33 上传 本文为你展示,如何用Python把许多PDF文件的 ...
- python 如何批量提取文件中的字符_如何用Python批量提取PDF文本内容?
本文为你展示,如何用Python把许多PDF文件的文本内容批量提取出来,并且整理存储到数据框中,以便于后续的数据分析. 问题 最近,读者们在后台的留言,愈发五花八门了. 写了几篇关于自然语言处理的文章 ...
- python提取pdf文件内容_如何用Python批量提取PDF文本内容?
本文为你展示,如何用Python把许多PDF文件的文本内容批量提取出来,并且整理存储到数据框中,以便于后续的数据分析. 问题 最近,读者们在后台的留言,愈发五花八门了. 写了几篇关于自然语言处理的文章 ...
- python soup提取叶子标签_python 利用beautifulSoup提取页面多个标签的文本内容
初学beautifulsoup解析库,拿一个招聘网页练手,想达到提取多个标签的文本内容,但是目前只可以提取到单个标签的单个文本内容,多标签的文本如何提取? from requests.exceptio ...
- python怎么读取pdf为文本_python怎么读取pdf文本内容
python读取pdf文本内容的方法:首先打开相应的python脚本文件:然后使用PDFMiner工具来读取pdf文本内容:最后通过print输出读取后的内容即可. python读取pdf文本内容 p ...
- Java实现标题相似度计算,文本内容相似度匹配,Java通过SimHash计算标题文本内容相似度
目录 一.前言 二.关于SimHash 补充知识 一).什么是海明距离 二).海明距离的应用 三).什么是编辑距离 三.SimHash算法的几何意义和原理 一).SimHash算法的几何意义 二). ...
- java imageio删除图片_Java 提取、替换、删除PDF文档中的图片
在一篇文章里,配有与文本信息相得益彰的图片,不仅能够活跃与美化版面,同时也有利于提高文章的可读性和阅读效果,从而增强其吸引力.同时,对文档中已存在图片的处理也尤为重要.本文将通过使用Java程序来演示 ...
- Python 使用pdfplumber直接提取PDF文本内容
前提:提取文本内容的文件必须是应用服务生成PDF文件,而非扫描的pdf文档,当前pdfplumber的版本为0.5.28 第一步:在服务应用的终端中使用下述命令安装pdfplumber包 poetry ...
- python提取pdf文本内容多种方式
安装 # pip install pdfminer pip install pdfminer3k pip install pdfminer.six 安装这个引入的内容不会报错 若安装不成功,可以试试下 ...
最新文章
- magento 多语言 ,后台手工更改方法
- QTableWidget控件总结
- python grid用法_Python numpy.mgrid函数方法的使用
- python dict遍历文件_python 字典(dict)遍历的四种方法性能测试报告
- POJ1179 Polygon 【例题精讲】
- Dockerfile文件详解
- NO4 findmv--特殊符号..和.
- 【自然框架】稳定版的Demo —— 三:主从表的维护方式
- lqr控制和模糊控制三级倒立摆
- 简单突破数据库备份路径拿shell
- 冰点还原精灵软件功能及优势
- 连接共享打印机时提示无法访问计算机,共享打印机无法连接,教您共享打印机无法连接怎么办...
- 使用java实现简单五子棋
- xbox one s驱动_【硬件资讯】次世代主机间最大差距?PS5 120Hz支持成难题,XBOX优势巨大!!...
- 计算机语言属于人类意识的客观内容,《2008年考研政治800题精解》世界的物质性和人的实践活动(5)...
- Linux下安装Nginx(实战配置)
- 家庭网络理解(家庭版光猫、路由器、交换机)
- EMS是中国邮政提供的一种快递服务。
- 交错和 (hihocoder)
- 将桌面移动到D盘,D盘中的资料填满了整个桌面
热门文章
- Buses and People CodeForces 160E 三维偏序+线段树
- 地图根据地名批量标注地点 发现好像要么限制了10-20个个数 要么就需要企业付费...
- 多线程的Lock锁——ReentrantReadWriteLock
- Eclipse SVN图标等设置
- linux下vmware的安装、物理分区使用及卸载
- 各种格式ANSI,UTF8,Unicode,Unicode BigEndian的解释
- Ubuntu Emacs Fcitx 中文输入法设置
- 初学ASP.Net时在论坛收藏收集的一些资料备忘
- 游戏笔记本计算机购买,游戏笔记本电脑推荐 三分钟售罄TA为何如此火爆?
- 300+篇CVPR 2020代码开源的论文(转载)