pdfboxjar包默认是按照行来提取文字的,但是我们的pdf可能并是按照行来进行排序的,那么我们就可能用到坐标矩形选区操作,选取固定区域的文字,原理大家不必纠结,我们只需要拿来用即可,他只是一个工具类,需要时,我们还可以去查与官方文档,去组装自己需要的功能。

提取矩形区域内容:

1、导入pdfboxjar包(每个版本的操作都不一样),这里我使用的是maven

<dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>1.8.13</version>
</dependency>

2、使用如下代码可以提取文字

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.util.PDFTextStripperByArea;import java.awt.Rectangle;
import java.io.File;
import java.util.List;public class ExtractTextByArea{public static void main( String[] args ) throws Exception{String file = "C:/Users/Desktop/Wistron 201808 KR HK08 Sorting Handling Fee Invoice 6000499146.pdf";PDDocument document = null;document = PDDocument.load(new File(file));if( document.isEncrypted() ){document.decrypt("");}PDFTextStripperByArea stripper = new PDFTextStripperByArea();stripper.setSortByPosition( true );Rectangle rect = new Rectangle( 30, 310, 200, 10 );    //(x坐标,y坐标,长,宽)stripper.addRegion( "class1", rect );List allPages = document.getDocumentCatalog().getAllPages();PDPage firstPage = (PDPage)allPages.get( 0 );stripper.extractRegions( firstPage );System.out.println( "Text in the area:" + rect );System.out.println( stripper.getTextForRegion( "class1" ) );}}

提取pdf中所有文本:

1、导入jar包(这个用的是2.0版本的jar)

<dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.0-RC3</version>
</dependency>

2、使用如下代码提取:

import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.Map;
import java.util.regex.Pattern;import org.apache.pdfbox.io.RandomAccessFile;
import org.apache.pdfbox.io.RandomAccessRead;
import org.apache.pdfbox.pdfparser.PDFParser;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;public class ChangeTypeUtil {public static void changeFile(String pdfName, String wordName) throws IOException {try {PDDocument doc = PDDocument.load(new File(pdfName));int pagenumber = doc.getNumberOfPages();FileOutputStream fos = new FileOutputStream(wordName);Writer writer = new OutputStreamWriter(fos, "UTF-8");PDFTextStripper stripper = new PDFTextStripper();stripper.setSortByPosition(true);// 排序
//          stripper.setWordSeparator("");//pdfbox对中文默认是用空格分隔每一个字,通过这个语句消除空格stripper.setStartPage(0);// 设置转换的开始页stripper.setEndPage(pagenumber);// 设置转换的结束页stripper.writeText(doc, writer);writer.close();doc.close();} catch (Exception e) {System.out.println(e.getMessage());}}public static void main(String[] args) throws Exception {String p = "C:/Users/Desktop/Wistron 201808 KR HK08 Sorting Handling Fee Invoice 6000499146.pdf";String w = "C:/Users/Desktop/Wistron 201808 KR HK08 Sorting Handling Fee Invoice 6000499146.doc";changeFile(p,w);}
}

JAVA PDFbox 坐标选区提取文字相关推荐

  1. Java 从word中提取文字信息(开发笔记)

    所需jar包: 下载地址: https://download.csdn.net/download/qq_34246546/10622595 代码如下: package com.xc.test.util ...

  2. PDFBox定位坐标并提取相应文本

    说明 pdfbox解析pdf,因是对每一个字符都有坐标标记,会根据坐标对全篇文字排序后输出.若文章中表格存在行坐标不一致,极易导致解析乱排. 解决思路 1.定位表格起始.终止X/Y坐标 2.解析表格之 ...

  3. 图片提取文字功能很神奇?Java几行代码搞定它!

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/weixin_44671737/ article/details/110000864 摘要 近日浏 ...

  4. 几行 Java 代码搞定图片提取文字功能

    近日浏览网上一些图片提取文字的网站,觉得甚是有趣,花费半日也做了个在线图片识别程序,完成了两个技术方案的选择,一是 tesseract + Python flask的方案实现,二是 tesseract ...

  5. 图片提取文字功能很神奇?Java几行代码搞定它

    摘要 近日浏览网上一些图片提取文字的网站,觉得甚是有趣,花费半日也做了个在线图片识别程序,完成了两个技术方案的选择,一是tesseract+python flask的方案实现,二是tesseract+ ...

  6. Java PDFBox

    Java PDFBox 教程展示了如何使用 PDFBox 在 Java 中创建 PDF 文件. PDFBox Apache PDFBox 是一个开源 Java 库,可用于创建.渲染.打印.拆分.合并. ...

  7. java从字符串中提取数字

    1.做一下操作时会一般会用到提取数字操纵: a.列表中有翻页,当新添加的数据不是放在第一条或者最后一条时,需要翻页并循环找到对应的那条数据 b.当新添加的数据放在第一条或者最后一条时,则不需要翻页,只 ...

  8. pdfparser java_如何使用java从PDF中提取内容?

    在Java编程中,如何使用java从PDF中提取内容? 项目的目录结构如下 - Tika的工具包可从以下网址下载:http://tika.apache.org/download.html ,只下载:t ...

  9. Itext与pdfBox坐标定位问题

    itext与pdfbox都可以做pdf解析工具,下面简单介绍itext与pdfbox坐标定位 itext: import java.io.IOException; import com.itextpd ...

最新文章

  1. 根据ip获取用户地址-百度
  2. Solaris 操作
  3. 【Python】Jupyter Notebook的十大隐藏技巧--如何大大加速算法的迭代
  4. tomcat 访问去掉项目名 直接访问 localhsot
  5. ValueError: too many values to unpack
  6. JeecgBoot 连接达梦数据库
  7. libx264进行视频编码的流程
  8. Ajax 浏览器跨域访问控制
  9. linux 修改php配置,PHP部署时的几个配置修改说明
  10. 中英文对照 —— 标点符号(punctuation)
  11. STM32的Altium Designer原理图PCB封装库下载
  12. 计算机网络的权威杂志,科学网—晒个自己整理的计算机网络和通信方向可能相关的期刊列表...
  13. ios键盘done中文_IOS_总结IOS中隐藏软键盘的三种方式,一、使用软键盘的 Done 键隐藏 - phpStudy...
  14. VGG多种网络结构的搭建以及感受野的计算
  15. cas 部署过程中遇到的一些问题(持续更新)
  16. android lunch 报错
  17. R语言学习手记 (1)
  18. 单片机led灯闪烁实验总结_新款LED型便携式实验室高强度紫外线灯对比说明
  19. 封闭基金周折价排行表(20060901)[ZT]
  20. 「微信将不再提供小程序打开 App 技术服务」带给我的思考

热门文章

  1. BERT四大下游任务
  2. 《编写有效用例》读书笔记(6)——前置条件、触发事件和保证
  3. 100g的攻击大概是多少钱一天?高防IP防御DDOS的原理是什么?
  4. 指纹识别 python实现_Python语言之指纹识别是目前最成熟的识别技术!Python能分分钟做出一个来!...
  5. 媒企农三方共建专属基地 探索助力吉林乡村振兴
  6. win10装的AutoCAD 2012版,右上角最小化不显示的解决办法
  7. openGL曲面细分
  8. 【四十六】Python全栈之路--bootstrap
  9. .ps1 is not digitally signed. The script will not execute on the system.
  10. 思域第三方app安装方法(提权)