java解析pdf获取pdf中内容信息 |
您所在的位置:网站首页 › pdf无法识别文本内容 › java解析pdf获取pdf中内容信息 |
java解析pdf获取pdf中内容信息
今日项目中需要将pdf中的数据获取到进行校验数据,于是前往百度翻来覆去找到以下几种办法,做个笔记,方便日后查询。 废话不多说,我要直接上代码装逼了 第一种 使用开源组织提供的开源框架 pdfboxapi ; 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.02 代码 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 |