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格式的图片相关推荐

  1. java pdf转图片拼接_java实现pdf按页转换为图片

    本文实例为大家分享了java实现pdf按页转换为图片的具体代码,供大家参考,具体内容如下 本程序是利用jacob.jar包实现的,关于jacob.jar的配置见我上一篇文章,程序中可配置参数选择图片清 ...

  2. 如何将PDF转换为JPEG格式的图片?

    有时候,我们需要将PDF文件中的某些内容转换为JPEG格式的图片,以便于在各种设备上浏览和共享.在这种情况下,我们可以使用一些工具将PDF文件转换为JPEG格式的图片.本文将介绍一些常用的工具和方法, ...

  3. pdf怎么转换成jpg格式的图片,5种方法详细教程

    pdf怎么转换成jpg格式的图片,为什么这样做呢?那是因为将PDF转换成JPG格式的主要原因是方便在演示文稿.网页或社交媒体等平台上展示和分享PDF文件的内容.JPG格式具有广泛的兼容性和易于传输的特 ...

  4. 将 .mat 转换为 .png 格式的图片Python实现(通俗易懂版)

    看了一下午关于将 .mat 转换为 .png 格式的图片Python实现的CSDN,总算知道了个大概,于是自己将他们整合了一下,希望可以帮助到大家,里面有什么问题也请大家给我提出来,话不多说,首先附上 ...

  5. 【C语言】之把yuyv422格式的图片转换为pnm格式的图片

    平台:Linux /***************************************************************************** 文件名:Yuyv422T ...

  6. java json转换xml格式_在Java中将JSON对象转换为XML格式?

    JSON是一种轻量级的数据交换格式,并且JSON的格式类似于键值对.我们可以使用org.json.XML类将JSONObject转换为XML格式,这提供了将XML文本转换为JSONObject并将JS ...

  7. java 将avi视频转换为mp4格式并获取视频文件信息

    引入jar包 <!-- https://mvnrepository.com/artifact/ws.schild/jave-all-deps --><dependency>&l ...

  8. 批量转换方法!将JPG图片转换为PNG格式的图片

    图片的格式有很多种,其次,图片的格式是可以转换的,比如说将JPG转成PNG,BMP转成JPG等等.图片格式的转换,需要借助专业的辅助工具--下图高手,下面就以将JPG图片批量转换为PNG格式为例,一起 ...

  9. word 转 html cms,Java 将Word文件转换为HTML格式文件

    前言:在很多时候我们都需要到项目中导入word文档,但是后期再次在前段显示这个文档的时候前端往往需要的是html格式的,所以这个时候就会提出一个需求: 你们存文档的时候能不能存成html格式的?  于 ...

最新文章

  1. Unity + SQL数据库创建管理玩家排行榜学习教程
  2. iOS的那个漏洞并不只是影响苹果设备CVE-2017-6975 Google称影响了所有使用Broadcom Wi-Fi SoC的设备...
  3. HTML5事件—visibilitychange 页面可见性改变事件
  4. 我珍藏的内容分享给大家
  5. MSpider爬虫搜索
  6. vpr文件转换flac_有什么简单方法将flac无损转换mp3
  7. 851. 喧闹和富有
  8. 浅谈JavaScript--闭包
  9. java代码实现PDF转DOC文档
  10. 白猫使用OCR文字识别
  11. Google Play关键词选词方法及常用选词工具
  12. ATTCK实战系列——红队实战(二)
  13. 某宝双十一自动养猫,解放你的双手得喵币
  14. 《缠中说禅108课》25:吻,MACD、背弛、中枢
  15. 美国国家安全局发布零信任安全模型指南
  16. Java坑人面试题系列: 比对while与for循环(中级难度)
  17. 安装phpnow服务[Apache_pn]提示失败的解决方法
  18. C#求解一元二次方程的根
  19. 解决IntelliJ IDEA duplicate class R.java and BuildConfig.java
  20. Criterion 用法

热门文章

  1. 采集/自动登录啊都可以用这两个方法实现 asp.net
  2. DELL R710 服务器内存排错
  3. 12月北京CISA认证考试考前辅导会成功举办
  4. 这个 MySQL bug 99% 的人会踩坑!
  5. TIDB,面向未来的数据库到底是什么?
  6. 如何用OKR搞垮一个团队?
  7. 简历这样写,技术人都不直男了!
  8. TiDB 在小红书从 0 到 200+ 节点的探索和应用
  9. 一个蚂蚁攻城狮曾经的辛酸面试历程!
  10. 分布式之elk日志架构的演进