java解析pdf获取pdf中内容信息

您所在的位置:网站首页 pdf无法识别文本内容 java解析pdf获取pdf中内容信息

java解析pdf获取pdf中内容信息

2024-07-13 19:32| 来源: 网络整理| 查看: 265

java解析pdf获取pdf中内容信息

今日项目中需要将pdf中的数据获取到进行校验数据,于是前往百度翻来覆去找到以下几种办法,做个笔记,方便日后查询。

废话不多说,我要直接上代码装逼了

第一种 使用开源组织提供的开源框架 pdfbox

api ; https://pdfbox.apache.org/

特点:免费,功能强大,解析中文或许会存在乱码,默认格式有点乱,没有国产解析的那么美化。

想要按行读取:

PDFTextStripper stripper = new PDFTextStripper(); stripper .setSortByPosition(sort); //sort设置为true 则按照行进行读取,默认是false

可以按照指定的模板,对pdf进行修改添加删除等操作,总之操作很骚,很强大。

1 pdfbox 需要带入依赖

org.apache.pdfbox pdfbox 2.0.1 org.apache.pdfbox fontbox 2.0.0 org.apache.pdfbox jempbox 1.8.11 org.apache.pdfbox xmpbox 2.0.0 org.apache.pdfbox preflight 2.0.0 org.apache.pdfbox pdfbox-tools 2.0.0

2 代码

package pdf; import java.awt.Rectangle; import java.awt.geom.Rectangle2D; import java.io.File; import java.util.Iterator; import javax.imageio.ImageIO; import org.apache.pdfbox.text.PDFTextStripper; import org.apache.pdfbox.text.PDFTextStripperByArea; import org.apache.pdfbox.cos.COSName; import org.apache.pdfbox.io.RandomAccessFile; import org.apache.pdfbox.pdfparser.PDFParser; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDResources; import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; public class PDFReader { static String fileName = "/Users/pilgrim/Desktop/最近阅读pdf/CPU爆满排查.pdf"; public static void main(String[] args) throws Exception { readFile(); readPage(); readTextImage(); readRectangle(); } /** * 一次获取整个文件的内容 * * @throws Exception */ public static void readFile() throws Exception { File file = new File(fileName); RandomAccessFile is = new RandomAccessFile(file, "r"); PDFParser parser = new PDFParser(is); parser.parse(); PDDocument doc = parser.getPDDocument(); PDFTextStripper textStripper = new PDFTextStripper(); String s = textStripper.getText(doc); System.out.println("总页数:" + doc.getNumberOfPages()); System.out.println("输出内容:"); System.out.println(s); doc.close(); } /** * 分页获取文字的内容 * * @throws Exception */ public static void readPage() throws Exception { File file = new File(fileName); RandomAccessFile is = new RandomAccessFile(file, "r"); PDFParser parser = new PDFParser(is); parser.parse(); PDDocument doc = parser.getPDDocument(); PDFTextStripper textStripper = new PDFTextStripper(); for (int i = 1; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3