java pdf 多页转换为png格式的图片
java pdf 多页转换为png格式的图片 适用于 无论pdf有多少页均可
废话不说,直接上代码
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;import javax.imageio.ImageIO;
import javax.imageio.stream.ImageOutputStream;import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;/*** * @author wdg pdf 转换为pdf**/
public class PdfToPng {/**** * * 使用方式* * maven 项目中需要引入:* <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.21</version></dependency>* * * * 方法是将多张pdf 转换为png 格式的图片* @param pdffile pdf 文件路径* @param targetPath png 文件存储路径* @param height_offset 多张图片之间合成间隔距离*/public static void pdfFileToImage(File pdffile, String targetPath,int height_offset) {try {FileInputStream instream = new FileInputStream(pdffile);InputStream byteInputStream = null;try {PDDocument doc = PDDocument.load(instream);PDFRenderer renderer = new PDFRenderer(doc);int pageCount = doc.getNumberOfPages();List<BufferedImage> list = new ArrayList<BufferedImage>();if (pageCount > 0) {int totalHeight = 0;int width = 0;for (int i = 0; i < pageCount; i++) {BufferedImage image = renderer.renderImage(i, 1.25f);list.add(image);totalHeight += image.getHeight();if (width < image.getWidth()) {width = image.getWidth();}image.flush();}BufferedImage tag = new BufferedImage(width, totalHeight, BufferedImage.TYPE_INT_RGB);tag.getGraphics();Graphics g = tag.createGraphics();int startHeight = 0;for (BufferedImage image : list) {g.drawImage(image, 0, startHeight, width, image.getHeight(), null);g.drawImage(image, 0, startHeight, width, image.getHeight(), null);startHeight += image.getHeight() + height_offset;}g.dispose();ByteArrayOutputStream bs = new ByteArrayOutputStream();ImageOutputStream imOut;imOut = ImageIO.createImageOutputStream(bs);ImageIO.write(tag, "png", imOut);byteInputStream = new ByteArrayInputStream(bs.toByteArray());byteInputStream.close();}} catch (IOException e) {e.printStackTrace();}File uploadFile = new File(targetPath);FileOutputStream fops;fops = new FileOutputStream(uploadFile);fops.write(readInputStream(byteInputStream));fops.flush();fops.close();} catch (Exception e) {e.printStackTrace();}}public static byte[] readInputStream(InputStream inStream) throws Exception {ByteArrayOutputStream outStream = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int len = 0;while ((len = inStream.read(buffer)) != -1) {outStream.write(buffer, 0, len);}inStream.close();return outStream.toByteArray();}public static void main(String[] args) {File file = new File("D:\\pdfpath\\ceshi2.pdf");// 上传的是png格式的图片结尾String targetfile = "D:\\pdfpath\\wdg3.png";pdfFileToImage(file, targetfile,10);}}
希望对你有所帮助
java pdf 多页转换为png格式的图片相关推荐
- java pdf转图片拼接_java实现pdf按页转换为图片
本文实例为大家分享了java实现pdf按页转换为图片的具体代码,供大家参考,具体内容如下 本程序是利用jacob.jar包实现的,关于jacob.jar的配置见我上一篇文章,程序中可配置参数选择图片清 ...
- 如何将PDF转换为JPEG格式的图片?
有时候,我们需要将PDF文件中的某些内容转换为JPEG格式的图片,以便于在各种设备上浏览和共享.在这种情况下,我们可以使用一些工具将PDF文件转换为JPEG格式的图片.本文将介绍一些常用的工具和方法, ...
- pdf怎么转换成jpg格式的图片,5种方法详细教程
pdf怎么转换成jpg格式的图片,为什么这样做呢?那是因为将PDF转换成JPG格式的主要原因是方便在演示文稿.网页或社交媒体等平台上展示和分享PDF文件的内容.JPG格式具有广泛的兼容性和易于传输的特 ...
- 将 .mat 转换为 .png 格式的图片Python实现(通俗易懂版)
看了一下午关于将 .mat 转换为 .png 格式的图片Python实现的CSDN,总算知道了个大概,于是自己将他们整合了一下,希望可以帮助到大家,里面有什么问题也请大家给我提出来,话不多说,首先附上 ...
- 【C语言】之把yuyv422格式的图片转换为pnm格式的图片
平台:Linux /***************************************************************************** 文件名:Yuyv422T ...
- java json转换xml格式_在Java中将JSON对象转换为XML格式?
JSON是一种轻量级的数据交换格式,并且JSON的格式类似于键值对.我们可以使用org.json.XML类将JSONObject转换为XML格式,这提供了将XML文本转换为JSONObject并将JS ...
- java 将avi视频转换为mp4格式并获取视频文件信息
引入jar包 <!-- https://mvnrepository.com/artifact/ws.schild/jave-all-deps --><dependency>&l ...
- 批量转换方法!将JPG图片转换为PNG格式的图片
图片的格式有很多种,其次,图片的格式是可以转换的,比如说将JPG转成PNG,BMP转成JPG等等.图片格式的转换,需要借助专业的辅助工具--下图高手,下面就以将JPG图片批量转换为PNG格式为例,一起 ...
- word 转 html cms,Java 将Word文件转换为HTML格式文件
前言:在很多时候我们都需要到项目中导入word文档,但是后期再次在前段显示这个文档的时候前端往往需要的是html格式的,所以这个时候就会提出一个需求: 你们存文档的时候能不能存成html格式的? 于 ...
最新文章
- Unity + SQL数据库创建管理玩家排行榜学习教程
- iOS的那个漏洞并不只是影响苹果设备CVE-2017-6975 Google称影响了所有使用Broadcom Wi-Fi SoC的设备...
- HTML5事件—visibilitychange 页面可见性改变事件
- 我珍藏的内容分享给大家
- MSpider爬虫搜索
- vpr文件转换flac_有什么简单方法将flac无损转换mp3
- 851. 喧闹和富有
- 浅谈JavaScript--闭包
- java代码实现PDF转DOC文档
- 白猫使用OCR文字识别
- Google Play关键词选词方法及常用选词工具
- ATTCK实战系列——红队实战(二)
- 某宝双十一自动养猫,解放你的双手得喵币
- 《缠中说禅108课》25:吻,MACD、背弛、中枢
- 美国国家安全局发布零信任安全模型指南
- Java坑人面试题系列: 比对while与for循环(中级难度)
- 安装phpnow服务[Apache_pn]提示失败的解决方法
- C#求解一元二次方程的根
- 解决IntelliJ IDEA duplicate class R.java and BuildConfig.java
- Criterion 用法