pdf 提取图片
来源:互联网 发布:现在做淘宝很难 编辑:程序博客网 时间:2024/06/03 19:24
一共两种方法,
第一种提取速度较快 一秒几张。但是会丢失画质
第二种提取速度慢,两秒一张,但是不会丢失画质
------------------------------------------------------------------------
先说第一种
线上jar包
<dependency> <groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId> <version>2.0.8</version> </dependency>
<!-- https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox-tools -->
<dependency> <groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox-tools</artifactId> <version>2.0.8</version> </dependency>
/** * 获得pdf的图片 * * @param pdfFilePath * 如 C:\\Users\\TOSHIBA\\Desktop\\Helloworld.pdf * @param imaDir * 如 C:\\Users\\TOSHIBA\\Desktop\\ */public static void PDF2ImagByPdfBox(String pdfFilePath, String imaDir) {if (!pdfFilePath.endsWith("pdf") && !pdfFilePath.endsWith("PDF")) {throw new RuntimeException("不是pdf文件");}File pdfFile = new File(pdfFilePath);if (!pdfFile.exists()) {throw new RuntimeException("pdf文件不存在");}if (imaDir.charAt(imaDir.length() - 1) != '\\') {imaDir += "\\";}PDDocument pdf = null;try {pdf = PDDocument.load(new File(pdfFilePath));PDFRenderer pdfRenderer = new PDFRenderer(pdf);PDPageTree pageTree = pdf.getPages();int pageCounter = 0;for (PDPage page : pageTree) {float width = page.getCropBox().getWidth();float scale = 1.0f;if (width > 720) {scale = 720 / width;}BufferedImage bim = pdfRenderer.renderImage(pageCounter, scale,ImageType.RGB);ImageIOUtil.writeImage(bim, imaDir + (pageCounter++) + ".png",300);}} catch (IOException e) {e.printStackTrace();}}
-------------------------------------------------------------------------------------------------------------------------------
第二种
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox-app</artifactId>
<version>2.0.2</version>
</dependency>
/** * @param pdfFilePath * 如 C:\\Users\\TOSHIBA\\Desktop\\Helloworld.pdf * @param imaDir * 如 C:\\Users\\TOSHIBA\\Desktop\\ */public static void PDF2ImagByPdfBox(String pdfFilePath, String imaDir) {File file = new File(pdfFilePath);if (!pdfFilePath.endsWith("pdf") && !pdfFilePath.endsWith("PDF")) {throw new RuntimeException("不是pdf文件");}if (imaDir.charAt(imaDir.length() - 1) != '\\') {imaDir += "\\";}PDDocument doc=null;try { doc = PDDocument.load(file);PDFRenderer renderer = new PDFRenderer(doc);int pageCount = doc.getNumberOfPages();for (int i = 0; i < pageCount; i++) {BufferedImage image = renderer.renderImageWithDPI(i, 296);ImageIO.write(image, "PNG", new File(imaDir + i + ".png"));System.out.println("转换页数" + i+ "----- "+ "总共页数"+ pageCount);}} catch (IOException e) {e.printStackTrace();}finally{try {if(null!=doc){doc.close();}} catch (Exception e2) {e2.printStackTrace();}}}
- pdf 提取图片
- PDF 中图片的提取
- 在线提取PDF中图片和文字
- 提取含水印的pdf中的图片
- 如何提取PDF文件中的图片
- 如何将pdf中的图片提取出来
- 技巧丨PDF图片提取的方法
- 关于图片转pdf,pdf提取文字的一些技巧
- 怎么从扫描的PDF文档/图片里提取文字
- 怎么把PDF文件中的图片全部提取出来
- 【office技巧】教你PDF图片提取的方法
- 如何使用免费PDF第三方插件从PDF文档中提取文本和图片
- 如何提取PDF内容?
- PDF 文字提取软件
- CAJViewer 提取pdf 文本
- CAJViewer 提取pdf 文本
- pdf文件提取某几页
- 如何提取pdf文字
- ggplot2-一页多图(不同来源, 灵活绘制)(转载)
- 第一次机房收费系统——报表
- 安卓热修复
- linux mysql 5.7的安装配置
- Laravel 出现 No application encryption key has been specified.
- pdf 提取图片
- Spark算子[04]:map,flatMap,mapToPair,flatMapToPair
- Mapped Statements collection does not contain value for
- 【Scikit-Learn 中文文档】模型选择:选择估计量及其参数
- 作为管理人员如何处理下属工作的偏差
- Kotlin语法基础,运算符
- border-radius属性
- winform频繁刷新导致界面闪烁解决方法
- python-文件