Java 提取PDF图片(pdfbox)Extract PDF document images
依赖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相关推荐
- java修改图章图片_Java处理PDF图章的方法示例(代码)
本篇文章给大家带来的内容是关于Java 处理PDF图章的方法示例(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 图章(印章)是一种在合同.票据.公文等文件中表明法律效应.部门 ...
- java修改图章图片_Java 处理PDF图章(印章)——图片图章、动态图章
图章(印章)是一种在合同.票据.公文等文件中表明法律效应.部门机关权威的重要指示物,常见于各种格式的文件.文档中.对于纸质文档可以手动盖章,但对于电子文档,则需要通过特定的方法来实现.本篇文档分享通过 ...
- Pdfbox在linux下生成pdf,使用PDFBox处理PDF文档
下面是自己按照书上的例子写的代码. 1package TestPDF.pdfbox; 3import java.io.File; 4import java.io.FileOutputStream; 5 ...
- java pdf 图片_java实现PDF转图片的方法
本文实例为大家分享了java实现PDF转图片的具体代码,供大家参考,具体内容如下 1.首先利用maven引入所需jar包 org.apache.pdfbox fontbox 2.0.1 org.apa ...
- java 生成纯色图片_Java 给PDF文档设置背景色(纯色、背景图片)
import com.spire.pdf.PdfDocument; import com.spire.pdf.PdfPageBase; import java.awt.*; public class ...
- Springboot使用pdfbox提取PDF图片
Springboot使用pdfbox提取PDF图片 PDFBox的介绍 Springboot集成PDFBox 一.提取pdf首页为图像 1. 实现需求 2. 项目代码 3. 执行结果 二.将pdf内容 ...
- 图片批量转换pdf文件
文章目录 1. 依赖 2. 工具类抽取 1. 依赖 <!--图片转换pdf Start--><!-- https://mvnrepository.com/artifact/com.i ...
- 在Java程序中创建和转换PDF文件
点击上方关注 "终端研发部" 设为"星标",和你一起掌握更多数据库知识 作者: Codingqi123 来源: jianshu.com/p/db15232987 ...
- 【Java】基于Pdfbox解析PDF文档中指定位置的文字和图片
1.1 PDFBOX介绍 Apache PDFBox是一个开源Java库,支持PDF文档的开发和转换. 我们可以使用PDFBox开发可以创建,转换和操作PDF文档的Java程序.PDFBox的主要功能 ...
最新文章
- 不用sqlDataSet如何从后台数据库中读取数据
- ★参加CSDN 用户体验调查 -- ★ 轻松赢取200C币
- 15.PHP_PHP与Ajax
- VTK:选择像素用法实战
- Could not find a suitable table factory for ‘org.apache.flink.table.factories.TableSinkFactory‘
- C# 向Main函数传递参数(程序启动时传递参数)
- linux执行脚本n,Linux执行sh脚本空白
- MySQL_数据库操作
- mysql foreign key_MYSQL外键(Foreign Key)的使用
- oracle函数大全指数运算,Oracle 基础语句 函数大全(字符串函数,数学函数,日期函数,逻辑运算函数......
- python编程狮苹果系统_Python编程狮app下载-Python编程狮苹果版v1.0
- Tip: JSP开发模式
- kjb文件 解析_微信安装包解析异常
- 矩阵卷积、矩阵相乘以及频域相乘之间的关系
- PSP开发简明教程(1)
- [Linux学习] 实战系列之网络管理
- 老男孩教育Python课程内容
- NP完全问题的归约-碰撞集(HITTING SET)
- Mybatis系列全解(八):Mybatis的9大动态SQL标签你知道几个?提前致女神!
- Excel 获取工龄公式
热门文章
- Arduino和Python实时监督控制和数据采集系统(SCADA)
- linux环境中设定开机自启动与定时任务
- java file.separator_关于Java的File.separator
- C++中find()函数用法
- EmguCv几种图像打开方法和转换
- 使用opencv时报错:C2065 “CV_COMP_CORREL”: 未声明的标识符
- Linux:NFS服务器
- 循环世界模型(Recurrent World Models)——真实世界建模的强化学习利器
- ConcurrentHashMap原理,在JKD7和JDK8版本的区别
- Adaboost入门教程——最通俗易懂的原理介绍(图文实例)