依赖pdfbox提取PDF文件图片

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.UUID;
import java.util.function.Consumer;import javax.imageio.ImageIO;import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageTree;
import org.apache.pdfbox.pdmodel.PDResources;
import org.apache.pdfbox.pdmodel.encryption.InvalidPasswordException;
import org.apache.pdfbox.pdmodel.graphics.PDXObject;
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
/*** * @author FishingGo* @time 2018-04-11 10:50* @description Extract PDF document images  PDF 图片提取   jdk1.8*/
public class GetImageFromPdf {/*** @param dir* @param realName* @return* @throws IOException*/public static File mkdirsFile(String dir, String realName) throws IOException {File file = new File(dir, realName);if (!file.exists()) {if (!file.getParentFile().exists()) {file.getParentFile().mkdirs();}file.createNewFile();}return file;}/*** load  PDF* @param path* @return* @throws InvalidPasswordException* @throws IOException*/public static PDDocument loadPdf(String path) throws InvalidPasswordException, IOException{return PDDocument.load(new File(path));}/*** loadPDPages* @param pdDocument* @return*/public static Iterator<PDPage> loadPDPages(PDDocument pdDocument){//pdpagetreePDPageTree pageTree=pdDocument.getPages();return pageTree.iterator();}public static void convertImage(Iterator<PDPage> iterator){iterator.forEachRemaining(new Consumer<PDPage>() {public void accept(PDPage pdPage) {//load resourePDResources pdResources=pdPage.getResources();//load XObjectNamesIterable<COSName> iterable = pdResources.getXObjectNames();//loadXObjectiterable.forEach(new Consumer<COSName>() {public void accept(COSName t) {try {System.out.println("###########################################");System.out.println();//is ImageXObjectif(pdResources.isImageXObject(t)){System.out.println("COSName "+t.getName()+" isImageXObject");PDXObject pdXObject = pdResources.getXObject(t);PDImageXObject pdImageXObject=(PDImageXObject) pdXObject;String suffix=pdImageXObject.getSuffix();System.out.println("Height:"+pdImageXObject.getHeight()+"Width:"+pdImageXObject.getWidth()+"Suffix:"+suffix);BufferedImage image=pdImageXObject.getImage();ImageIO.write(image, suffix, mkdirsFile("E://pdf/pic", UUID.randomUUID().toString()+"."+suffix));}else{System.out.println("COSName "+t.getName()+" isOtherXObject");}System.out.println();System.out.println("###########################################");} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}});}});}public static void main(String[] args) {try {convertImage(loadPDPages(loadPdf("E://1.pdf")));} catch (InvalidPasswordException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}
<dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.8</version>
</dependency>

Java 提取PDF图片(pdfbox)Extract PDF document images相关推荐

  1. java修改图章图片_Java处理PDF图章的方法示例(代码)

    本篇文章给大家带来的内容是关于Java 处理PDF图章的方法示例(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 图章(印章)是一种在合同.票据.公文等文件中表明法律效应.部门 ...

  2. java修改图章图片_Java 处理PDF图章(印章)——图片图章、动态图章

    图章(印章)是一种在合同.票据.公文等文件中表明法律效应.部门机关权威的重要指示物,常见于各种格式的文件.文档中.对于纸质文档可以手动盖章,但对于电子文档,则需要通过特定的方法来实现.本篇文档分享通过 ...

  3. Pdfbox在linux下生成pdf,使用PDFBox处理PDF文档

    下面是自己按照书上的例子写的代码. 1package TestPDF.pdfbox; 3import java.io.File; 4import java.io.FileOutputStream; 5 ...

  4. java pdf 图片_java实现PDF转图片的方法

    本文实例为大家分享了java实现PDF转图片的具体代码,供大家参考,具体内容如下 1.首先利用maven引入所需jar包 org.apache.pdfbox fontbox 2.0.1 org.apa ...

  5. java 生成纯色图片_Java 给PDF文档设置背景色(纯色、背景图片)

    import com.spire.pdf.PdfDocument; import com.spire.pdf.PdfPageBase; import java.awt.*; public class ...

  6. Springboot使用pdfbox提取PDF图片

    Springboot使用pdfbox提取PDF图片 PDFBox的介绍 Springboot集成PDFBox 一.提取pdf首页为图像 1. 实现需求 2. 项目代码 3. 执行结果 二.将pdf内容 ...

  7. 图片批量转换pdf文件

    文章目录 1. 依赖 2. 工具类抽取 1. 依赖 <!--图片转换pdf Start--><!-- https://mvnrepository.com/artifact/com.i ...

  8. 在Java程序中创建和转换PDF文件

    点击上方关注 "终端研发部" 设为"星标",和你一起掌握更多数据库知识 作者: Codingqi123 来源: jianshu.com/p/db15232987 ...

  9. 【Java】基于Pdfbox解析PDF文档中指定位置的文字和图片

    1.1 PDFBOX介绍 Apache PDFBox是一个开源Java库,支持PDF文档的开发和转换. 我们可以使用PDFBox开发可以创建,转换和操作PDF文档的Java程序.PDFBox的主要功能 ...

最新文章

  1. 不用sqlDataSet如何从后台数据库中读取数据
  2. ★参加CSDN 用户体验调查 -- ★ 轻松赢取200C币
  3. 15.PHP_PHP与Ajax
  4. VTK:选择像素用法实战
  5. Could not find a suitable table factory for ‘org.apache.flink.table.factories.TableSinkFactory‘
  6. C# 向Main函数传递参数(程序启动时传递参数)
  7. linux执行脚本n,Linux执行sh脚本空白
  8. MySQL_数据库操作
  9. mysql foreign key_MYSQL外键(Foreign Key)的使用
  10. oracle函数大全指数运算,Oracle 基础语句 函数大全(字符串函数,数学函数,日期函数,逻辑运算函数......
  11. python编程狮苹果系统_Python编程狮app下载-Python编程狮苹果版v1.0
  12. Tip: JSP开发模式
  13. kjb文件 解析_微信安装包解析异常
  14. 矩阵卷积、矩阵相乘以及频域相乘之间的关系
  15. PSP开发简明教程(1)
  16. [Linux学习] 实战系列之网络管理
  17. 老男孩教育Python课程内容
  18. NP完全问题的归约-碰撞集(HITTING SET)
  19. Mybatis系列全解(八):Mybatis的9大动态SQL标签你知道几个?提前致女神!
  20. Excel 获取工龄公式

热门文章

  1. Arduino和Python实时监督控制和数据采集系统(SCADA)
  2. linux环境中设定开机自启动与定时任务
  3. java file.separator_关于Java的File.separator
  4. C++中find()函数用法
  5. EmguCv几种图像打开方法和转换
  6. 使用opencv时报错:C2065 “CV_COMP_CORREL”: 未声明的标识符
  7. Linux:NFS服务器
  8. 循环世界模型(Recurrent World Models)——真实世界建模的强化学习利器
  9. ConcurrentHashMap原理,在JKD7和JDK8版本的区别
  10. Adaboost入门教程——最通俗易懂的原理介绍(图文实例)