概述

一般来说,我们无法对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文本内容相关推荐

  1. 如何用Python批量提取PDF文本内容?

    本文为你展示,如何用Python把许多PDF文件的文本内容批量提取出来,并且整理存储到数据框中,以便于后续的数据分析. 问题 最近,读者们在后台的留言,愈发五花八门了. 写了几篇关于自然语言处理的文章 ...

  2. python怎么读取pdf为文本_轻松用Python批量提取PDF文本内容,这个小技巧告诉你!...

    轻松用Python批量提取PDF文本内容,这个小技巧告诉你!-1.jpg (22.73 KB, 下载次数: 0) 2018-9-7 08:33 上传 本文为你展示,如何用Python把许多PDF文件的 ...

  3. python 如何批量提取文件中的字符_如何用Python批量提取PDF文本内容?

    本文为你展示,如何用Python把许多PDF文件的文本内容批量提取出来,并且整理存储到数据框中,以便于后续的数据分析. 问题 最近,读者们在后台的留言,愈发五花八门了. 写了几篇关于自然语言处理的文章 ...

  4. python提取pdf文件内容_如何用Python批量提取PDF文本内容?

    本文为你展示,如何用Python把许多PDF文件的文本内容批量提取出来,并且整理存储到数据框中,以便于后续的数据分析. 问题 最近,读者们在后台的留言,愈发五花八门了. 写了几篇关于自然语言处理的文章 ...

  5. python soup提取叶子标签_python 利用beautifulSoup提取页面多个标签的文本内容

    初学beautifulsoup解析库,拿一个招聘网页练手,想达到提取多个标签的文本内容,但是目前只可以提取到单个标签的单个文本内容,多标签的文本如何提取? from requests.exceptio ...

  6. python怎么读取pdf为文本_python怎么读取pdf文本内容

    python读取pdf文本内容的方法:首先打开相应的python脚本文件:然后使用PDFMiner工具来读取pdf文本内容:最后通过print输出读取后的内容即可. python读取pdf文本内容 p ...

  7. Java实现标题相似度计算,文本内容相似度匹配,Java通过SimHash计算标题文本内容相似度

     目录 一.前言 二.关于SimHash 补充知识 一).什么是海明距离 二).海明距离的应用 三).什么是编辑距离 三.SimHash算法的几何意义和原理 一).SimHash算法的几何意义 二). ...

  8. java imageio删除图片_Java 提取、替换、删除PDF文档中的图片

    在一篇文章里,配有与文本信息相得益彰的图片,不仅能够活跃与美化版面,同时也有利于提高文章的可读性和阅读效果,从而增强其吸引力.同时,对文档中已存在图片的处理也尤为重要.本文将通过使用Java程序来演示 ...

  9. Python 使用pdfplumber直接提取PDF文本内容

    前提:提取文本内容的文件必须是应用服务生成PDF文件,而非扫描的pdf文档,当前pdfplumber的版本为0.5.28 第一步:在服务应用的终端中使用下述命令安装pdfplumber包 poetry ...

  10. python提取pdf文本内容多种方式

    安装 # pip install pdfminer pip install pdfminer3k pip install pdfminer.six 安装这个引入的内容不会报错 若安装不成功,可以试试下 ...

最新文章

  1. magento 多语言 ,后台手工更改方法
  2. QTableWidget控件总结
  3. python grid用法_Python numpy.mgrid函数方法的使用
  4. python dict遍历文件_python 字典(dict)遍历的四种方法性能测试报告
  5. POJ1179 Polygon 【例题精讲】
  6. Dockerfile文件详解
  7. NO4 findmv--特殊符号..和.
  8. 【自然框架】稳定版的Demo —— 三:主从表的维护方式
  9. lqr控制和模糊控制三级倒立摆
  10. 简单突破数据库备份路径拿shell
  11. 冰点还原精灵软件功能及优势
  12. 连接共享打印机时提示无法访问计算机,共享打印机无法连接,教您共享打印机无法连接怎么办...
  13. 使用java实现简单五子棋
  14. xbox one s驱动_【硬件资讯】次世代主机间最大差距?PS5 120Hz支持成难题,XBOX优势巨大!!...
  15. 计算机语言属于人类意识的客观内容,《2008年考研政治800题精解》世界的物质性和人的实践活动(5)...
  16. Linux下安装Nginx(实战配置)
  17. 家庭网络理解(家庭版光猫、路由器、交换机)
  18. EMS是中国邮政提供的一种快递服务。
  19. 交错和 (hihocoder)
  20. 将桌面移动到D盘,D盘中的资料填满了整个桌面

热门文章

  1. Buses and People CodeForces 160E 三维偏序+线段树
  2. 地图根据地名批量标注地点 发现好像要么限制了10-20个个数 要么就需要企业付费...
  3. 多线程的Lock锁——ReentrantReadWriteLock
  4. Eclipse SVN图标等设置
  5. linux下vmware的安装、物理分区使用及卸载
  6. 各种格式ANSI,UTF8,Unicode,Unicode BigEndian的解释
  7. Ubuntu Emacs Fcitx 中文输入法设置
  8. 初学ASP.Net时在论坛收藏收集的一些资料备忘
  9. 游戏笔记本计算机购买,游戏笔记本电脑推荐 三分钟售罄TA为何如此火爆?
  10. 300+篇CVPR 2020代码开源的论文(转载)