如何通过Java应用程序将PDF转为图片格式?
PDF文件和图片文件,这是两种完全不一样的格式,可是有的时候这两种格式却是有相互转换的需要,大家在工作中遇到PDF文件转图片文件的问题时是怎么解决的呢?你们使用的方法简单方便吗?如果很麻烦的话,不妨来了解一下这篇文章分享的方法哦。本文将介绍如何通过Java应用程序快速高效地将PDF转为图片格式。一起来看看吧!
- 将整个 PDF 文档转换为多个图片
- 将指定 PDF 页面转换为图片
代码编译环境:
IntelliJ IDEA 2019(jdk 1.8.0)
PDF Jar包:Free Spire.PDF for Java 5.1.0
1.引入jar包
导入方法1:
手动引入。将Free Spire.PDF for Java下载到本地,解压,找到lib文件夹下的Spire.PDF.jar文件。在IDEA中打开如下界面,将本地路径中的jar文件引入Java程序:
导入方法2:如果您想通过 Maven安装,则可以在 pom.xml 文件中添加以下代码导入 JAR 文件。
<repositories> <repository> <id>com.e-iceblue</id> <url>https://repo.e-iceblue.cn/repository/maven-public/</url> </repository> </repositories> <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.pdf.free</artifactId> <version>5.1.0</version> </dependency> </dependencies>
将整个 PDF 文档转换为多个图片
仅需三步即可将整个 PDF 文档转换为多个图片,详细步骤如下:
- 创建 PdfDocument 类的对象,并通过 PdfDocument.loadFromFile(String filename) 方法加载 PDF 文档。
- 循环遍历 PDF 每一页,并通过 PdfDocument.saveAsImage(int pageIndex, PdfImageType type, int dpiX, int dpiY) 方法将 PDF 页面保存为图片格式。
- 指定图片格式为 .png 格式。
完整代码
Java
import com.spire.pdf.*;
import com.spire.pdf.graphics.PdfImageType; import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException; public class PDFtoImage {
public static void main(String[] args)throws IOException {
//实例化PdfDocument类的对象
PdfDocument pdf = new PdfDocument(); //加载PDF文档
pdf.loadFromFile("都江堰.pdf"); //遍历PDF每一页,保存为图片
for (int i = 0; i < pdf.getPages().getCount(); i++) {
//将页面保存为图片,并设置DPI分辨率
BufferedImage image = pdf.saveAsImage(i, PdfImageType.Bitmap,500,500);
//将图片保存为png格式
File file = new File( String.format(("ToImage-img-%d.png"), i));
ImageIO.write(image, "PNG", file);
}
pdf.close();
}
}
将指定 PDF 页面转换为图片
以下是实现格式转换的主要步骤:
- 创建 PdfDocument 类的实例。
- 通过 PdfDocument.loadFromFile(String filename) 方法加载 PDF 文档。
- 调用 PdfDocument.saveAsImage(int pageIndex, PdfImageType type, int dpiX, int dpiY) 方法将 PDF 指定页面保存为图片。
- 设置图片格式为 .png 格式。
完整代码
Java
import com.spire.pdf.*;
import com.spire.pdf.graphics.PdfImageType; import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException; public class PDFtoImage {
public static void main(String[] args) throws IOException {
//创建PdfDocument类的实例
PdfDocument pdf = new PdfDocument(); //加载PDF文档
pdf.loadFromFile("都江堰.pdf"); //将PDF第1页保存为图片,并设置图片DPI分辨率
BufferedImage image= pdf.saveAsImage(0, PdfImageType.Bitmap,500,500); //保存为png格式
ImageIO.write(image, "PNG", new File("ToPNG.png"));
}
}
效果图
—本文完—
如何通过Java应用程序将PDF转为图片格式?的更多相关文章
- 如何通过Java应用程序将 PDF转为Word文档
众所周知,PDF文档除了具有较强稳定性和兼容性外, 还具有较强的安全性,在工作中可以有效避免别人无意中对文档内容进行修改.但与此同时,也妨碍了对文档的正常的修改.这时我们可以将PDF转为Word文档进 ...
- 如何通过Java应用程序压缩PDF文档
PDF文档是我们日常办公中使用最频繁的文档格式.但因为大多数PDF文档都包含很多页面图像或大量图片,这就导致PDF文档过大,处理起来较为麻烦.PDF文件过大,就会导致传输或者下载的速度变慢,也会增加传 ...
- 自动化将 word 转为 pdf,再将pdf转为图片!
参考: https://blog.csdn.net/ynyn2013/article/details/49120731 https://www.jianshu.com/p/f57cc64b9f5e 一 ...
- JAVA基于PDF box将PDF转为图片
在一项目中用到,本身我是.NET的,团队中有用到JAVA,故此我处理这个功能,记录以下备用. 1.引用:fontbox-2.0.16.jar.pdfbox-app-2.0.16.jar 版本一定要正确 ...
- Convert 实现 pdf 和图片格式互转
pdf 转换为图片 (注意:pdf 默认转换的是透明背景,如果转为jpg格式必须添加背景色.-background white -flatten) convert -background white ...
- 如何通过Java应用程序将Word转为Excel
平时在工作中,很多小伙伴会习惯性地将文件保存为Word文档格式,但有时会发现某些文件如果保存成Excel表格可能会更好地呈现.例如有的文本在Word文本中不如在Excel工作表编辑计算方便,所以要把W ...
- 微信小程序,时间戳转为日期格式
//数据转化 function formatNumber(n) { n = n.toString() ] ? n : ' + n } /** * 时间戳转化为年 月 日 时 分 秒 * number: ...
- 微信小程序实现pdf,word等格式文件上传
目前微信只支持从聊天记录里面获取文件 一.前言 目前微信提供了一个接口 wx.chooseMessageFile 它能让用户从聊天记录里面选择一个或者多个文件,然后返回它的一些信息,列入文件的path ...
- 利用PhotoShop将Font-Awesome转为图片格式
介绍如何将Font-Awesome等字体图标转换为图片格式,使用PHOTPSHOP很简单. 网上找了很多,都比较麻烦.别问为什么要这么做,因为你还没遇到需要的时候. 下载Font-Awesome字体库 ...
- PDF转图片部分公式字符丢失问题解决的爬坑记录
现象 PDF教材导出到系统中,由程序将PDF转为图片后合并成一张大图供前端标注,但是在标注数学和化学学科的时候且源文件是PDF的情况下出现公式部分字符丢失的情况,如下图 原件 转换后效果 WTF! 转 ...
随机推荐
- Tomcat put 漏洞批量工具
工具下载 https://share.weiyun.com/96ffd3bf26b09ffece8d01317f3b3efb
- 1.2 C语言--函数与数组
函数 函数的定义 返回值类型函数名(类型形参名[,--]){ 函数体 } 除了没有访问修饰符外,基本等同于java的函数. 良好的程序设计风格要求即使没有返回值,也要使用return;作为最后一条语句 ...
- 实验 四 [bx]和loop的使用
1. 综合使用 loop,[bx],编写完整汇编程序,实现向内存 b800:07b8 开始的连续 16 个 字单元重复填充字数据0403H. 代码 assume cs:code code segme ...
- html 手机端适配不同手机高度 ,把内容居中显示
手机端适配不同手机高度 ,把内容居中显示,可以将div.img.section.span.p等等元素,设置 top:50%; margin-top:xxvw; 这样可以保证主题内容居中显示.
- 【APT】Patchwork APT组织针对巴基斯坦国防官员攻击活动分析
前言 Patchwork(白象.摩诃草.APT-C-09.Dropping Elephant)是一个疑似具有印度国家背景的APT组织,该组织长期针对中国.巴基斯坦等南亚地区国家进行网络攻击窃密活动.本 ...
- ansible使用笔记:长期更新
ansible使用笔记 ##将/home/system.sh文件拷贝到所有服务器的/home/system.sh ansible all -m copy -a "src=/home/syst ...
- spring security添加接口白名单
在项目中遇到的问题是要将某个接口设为白名单,无需验证即可被用户使用. 解决方法: 在nacos配置文件中ignore whites(不校验白名单)中添加对应接口,无gateway前缀即可,添加立即生效 ...
- P3366 模板最小生成树
题目描述 如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出orz. 输入格式 第一行包含两个整数N,M,表示该图共有N个结点和M条无向边. 接下来M行每行包含三个整数 Xi,Yi,Zi,表 ...
- CentOS7-jdk1.8下载安装
一.下载网址 jdk全版本:https://www.oracle.com/java/technologies/downloads/archive/ 本次安装版本(jdk1.8.0_151):https ...
- Linux 系统下挂载linux 系统盘
1应用背景:有时候系统崩溃无法修复,无法正常启动,而系统盘里面有需要的文件如log等需要拷贝出来,或者系统盘可以正常启动但是不方便用一台设备来启动这个系统盘.而直接将Linux系统盘接到windows ...