Java+PDFBox将PDF转成图片
废话少说直接上代码:
package com.pdf.test;import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
import com.lowagie.text.pdf.PdfReader;public class pdf2ImageDemo {public static void main(String[] args) {String outPutPath = "D:/PDF/Data.pdf";String dstImgFolder = "D:\\Developer\\eclipse2017\\"+ "pdf-logoImage-testing\\src\\test\\resources\\images";long start = System.currentTimeMillis();pdf2ImageDemo(outPutPath, dstImgFolder, 96);long end = System.currentTimeMillis();System.out.println("总共耗时:" + (end - start));}/**** PDF文件转PNG/JPEG图片* @param PdfFilePathpdf完整路径* @param imgFilePath图片存放的文件夹* @param dpi越大转换后越清晰,相对转换速度越慢,一般电脑默认96dpi*/public static void pdf2ImageDemo(String PdfFilePath, String dstImgFolder, int dpi) {File file = new File(PdfFilePath);PDDocument pdDocument;try {String imgPDFPath = file.getParent();int dot = file.getName().lastIndexOf('.');// 获取图片文件名String imagePDFName = file.getName().substring(0, dot); String imgFolderPath = null;if (dstImgFolder.equals("")) {// 获取图片存放的文件夹路径imgFolderPath = imgPDFPath + File.separator + imagePDFName;} else {imgFolderPath = dstImgFolder + File.separator + imagePDFName;}if (createDirectory(imgFolderPath)) {pdDocument = PDDocument.load(file);PDFRenderer renderer = new PDFRenderer(pdDocument);PdfReader reader = new PdfReader(PdfFilePath);int pages = reader.getNumberOfPages();// 获取PDF页数System.out.println("PDF page number is:" + pages);StringBuffer imgFilePath = null;for (int i = 0; i < pages; i++) {String imgFilePathPrefix = imgFolderPath+ File.separator + imagePDFName;imgFilePath = new StringBuffer();imgFilePath.append(imgFilePathPrefix);imgFilePath.append("_");imgFilePath.append(String.valueOf(i + 1));imgFilePath.append(".png");// PNGFile dstFile = new File(imgFilePath.toString());BufferedImage image = renderer.renderImageWithDPI(i, dpi);ImageIO.write(image, "png", dstFile);// PNG}System.out.println("PDF文档转PNG图片成功!");} else {System.out.println("PDF文档转PNG图片失败:"+ "创建" + imgFolderPath + "失败");}} catch (IOException e) {e.printStackTrace();}}private static boolean createDirectory(String folder) {File dir = new File(folder);if (dir.exists()) {return true;} else {return dir.mkdirs();}}
}
Java+PDFBox将PDF转成图片相关推荐
- 使用pdfbox将pdf转换成图片的时候,STSong-Light字体不存在解决方案
问题 使用pdfbox将pdf转换成图片的时候,STSong-Light字体的文字全为空格问题解决. 告警信息:Using fallback MT-Extra for CID-keyed font S ...
- pdfbox将pdf转换成图片时,提示STSong-Light字体缺失:No glyph for 20154 (CID 0ca6) in font STSong-Light
一.pdfbox把pdf转为图片的过程中出错 把pdf文件转为图片展示,但是展示出来的中文都是 口口 ,日志显示一堆No glyph for * (CID *) in font STSong-Ligh ...
- 使用Java实现,PDF转换成图片(每一页保存为一张图片)
基于maven项目 1.引入jar包 <!-- https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox --> <de ...
- PDF转换成图片(Java pdfbox实现 附中文乱码解决方案)
PDF转换成图片(Java pdfbox实现) pdf转成图片在java中主流的做法就是pdfbox和icepdf 然而我选择pdfbox 废话不多说上代码 引入依赖 <!--pdfbox--& ...
- 【PyMuPDF和pdf2image】Python将PDF转成图片
2023-04-30更新 PyMuPDF=1.21.1 import datetime # PyMuPDF=1.21.1 import fitzdef pdf2img(pdf_path, img_pa ...
- java调用pdfbox转pdf文件为图片文件,有中文时在windows上正常,部署到linux下乱码
最近遇到了一个很头疼的问题,我们的项目移动端需要一个读pdf的功能,但是手机端开发人员说移动端是用jquerymobile做的,不能直接甩pdf文件过去(原因是pdf文件太大),于是乎我们想到了2个解 ...
- SpringBoot 将PDF转成图片或Word
SpringBoot 将PDF转成图片或Word 准备工作 Apache PDFBox 将PDF转成一张图片 将PDF转成多张图片 将PDF转成其他文件格式 总结 SpringBoot 是一款非常流行 ...
- Python将PDF转成图片—PyMuPDF和pdf2image
前言:在最近的测试中遇到一个与PDF相关的测试需求,其中有一个过程是将PDF转换成图片,然后对图片进行测试. 粗略的试了好几种方式,其中语言尝试了Python和Java,总体而言所找到的Python方 ...
- pdf转换成jpg python_【PyMuPDF和pdf2image】Python将PDF转成图片PNG和JPG
公众号:前言:在最近的测试中遇到一个与PDF相关的测试需求,其中有一个过程是将PDF转换成图片,然后对图片进行测试. 粗略的试了好几种方式,其中语言尝试了Python和Java,总体而言所找到的Pyt ...
- python pdf转图片 poppler_Python将PDF转成图片—PyMuPDF和pdf2image
前言:在最近的测试中遇到一个与PDF相关的测试需求,其中有一个过程是将PDF转换成图片,然后对图片进行测试. 粗略的试了好几种方式,其中语言尝试了Python和Java,总体而言所找到的Python方 ...
最新文章
- extern “C“
- python五:运算符
- rip协议中周期性广播路由信息的报文_距离矢量路由协议(RIP)
- synchronized锁的升级
- python pip国内源_Python 修改pip源为国内源
- oracle数据库查看用户相关语句
- java instanceof运算符_Java 中的instanceof 运算符
- 10.卷2(进程间通信)---Posix信号量
- 事务例子_耗时3周!7000+字的Spring事务总结来啦
- IOS AVPlayer视频播放器 AVPlayerViewController视频播放控制器
- Java中过滤器与拦截器
- php sns 源码,ThinkSNS v4
- 25本最佳个人理财书籍
- 物联网linux系统设计,Ostro:面向物联网优化的基于 Linux的开源操作系统
- 金融学系列之 Inflation Money Remit
- Qt实现无边框可以拖拽拉伸
- 关于内存泄漏和内存溢出
- Atom - 介绍和使用方法(好用的文本编辑器,代码提示高亮、Markdown)
- 深度学习-85:智慧地球/智慧城市/智慧家庭
- 双节重逢之保持对生活的掌控感
热门文章
- 【转发分享】基于51单片机摩尔斯电码收发控制设计-基于51单片机智能恒温控制系统-基于51单片机霍尔测速直流电机设计-51单片机和MAX1898的智能手机充电器设计-基于51单片机的智能指纹考勤系统
- python开发一个自动批改本地Word作业的程序
- mac安装虚拟机 centos7
- IELTS4-15 LISTENING (Fill in the blanks)
- 扎克伯格是如何让员工学会高效工作的?
- windows server 2008共享文件夹
- Java 每半年就会更新一次新特性,再不掌握就要落伍了:Java15 的新特性
- 麻雀的叫声matlab文件,诱捕麻雀叫声mp3下载|
- Java 对上传文件后缀格式的校验
- 单片机 TDA8023 读 ic 卡 smrat card sync_card