<dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>1.8.6</version> </dependency>
先转换成多张图片,然后合并成一张。
package org.apache.pdf; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.Iterator; import java.util.List; import javax.imageio.IIOImage; import javax.imageio.ImageIO; import javax.imageio.ImageWriter; import javax.imageio.stream.ImageOutputStream; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; public class PDF2Image { public static void main(String[] args) { File pdf = new File("20140809200001.pdf"); String imgType = "jpg"; int pageCount = covertPdf2Image(pdf, imgType); mergeImg(pdf.getName(),imgType,pageCount); } @SuppressWarnings({ "rawtypes", "unchecked" }) public static int covertPdf2Image(File pdf, String imgType) { try { PDDocument doc = PDDocument.load(pdf); int pageCount = doc.getNumberOfPages(); System.out.println(pageCount); List<PDPage> pages = doc.getDocumentCatalog().getAllPages(); String imgPrefix = pdf.getName().split("\\.")[0]; for (int index = 0; index < pages.size(); index++) { BufferedImage image = pages.get(index).convertToImage(); Iterator iter = ImageIO.getImageWritersBySuffix(imgType); ImageWriter writer = (ImageWriter) iter.next(); File outFile = new File(imgPrefix + "_" + (index+1) + "." + imgType); FileOutputStream out = new FileOutputStream(outFile); ImageOutputStream outImage = ImageIO .createImageOutputStream(out); writer.setOutput(outImage); writer.write(new IIOImage(image, null, null)); } return pages.size(); } catch (IOException e) { e.printStackTrace(); } return -1; } public static void mergeImg(String imgPrefix, String imgType, int pages) { try { File tmpImg = new File(imgPrefix.split("\\.")[0]+"_1."+imgType); BufferedImage bufTemp = ImageIO.read(tmpImg); BufferedImage imageResult = new BufferedImage(bufTemp.getWidth(), bufTemp.getHeight() * 8, BufferedImage.TYPE_INT_RGB); for (int i = 1; i <= pages; i++) { File img = new File(imgPrefix.split("\\.")[0]+"_"+i+"."+imgType); BufferedImage bufImg = ImageIO.read(img); int width = bufImg.getWidth(); int height = bufImg.getHeight(); int[] imageArray = new int[width * height]; imageArray = bufImg.getRGB(0, 0, width, height, imageArray, 0,width); imageResult.setRGB(0, (i - 1) * height, width, height, imageArray, 0, width); img.delete(); } File outFile = new File("out.jpg"); ImageIO.write(imageResult, "jpg", outFile); } catch (Exception e) { e.printStackTrace(); } } }
相关推荐
pdf转图片输出
基于pdfbox的pdf转图片,发票pdf转图片,网络pdf转图片,基于pdfbox开发的demo,下载即用;
PDF转图片软件吾爱破解版是一款流畅度高非常实用的大部分流行的图片格式的转换。想要一款好用的PDF转多格式?那就快试试脚本之家小编推荐的PDF转图片软件吾爱破解版下载使用。pdf转换出来的图片都是高清无水印,并且...
基于开源PdfiumLib修改支持 Delphi 10.4.2 VCL,实现pdf转图片
文字pdf转图片pdf,文字pdf转图片pdf,文字pdf转图片pdf,文字pdf转图片pdf,文字pdf转图片pdf
PDF转word,PDF转图片,PDF拼接,PDF解密,图片转pdf,word转PDF
mvc、.net core 下 网页转pdf、pdf转图片、图片加水印、生成二维码、缩略图
集PDF转图片,PDF转word,旋转PDF,OCR识别的简单处理PDF的小工具集合,里面有使用说明,特分享给大家,鉴于能力有限,还望交流提升
java工程 pdf转图片 可指定转换某一页
PDF转图片
Adobe官方接口,可以实现PDF转图片。Acrobat.dll 的转换效率要比其他第三方DLL 快,稳定,不会出现中文乱码的情况,代码用csharp实现很简单,网上很多这里就不贴了
使用.NET WEBAPI开发PDF转图片接口Demo
安卓android上pdf转图片
基于apache pdfbox库实现Java PDF转图片,带源码和pom文件; 开发环境导入maven工程,PdfToImg为测试类,修改其中test.pdf和test.png的路径即可运行; PDFUtil为独立工具类,可放置任何工程中运行。 如果在linux...
ASP.NET PDF转图片,并且在线预览,使用VS2015开发的一个小DEMO程序源码,通过FileUpload将PDF文件上传至服务器,再将PDF转换为Image进行保存 直接下载运行就可以看到效果
利用Aspose对word,,pdf转换图片
PDF转换图片(多页转多张) java实现多页PDF转换多张图片
PDF转图片
1.pdf转图片常用的四种方式,包和代码全有(icepdf只有包),注释也很清晰, 2.是做个老项目时找来的,要对jdk1.5用,所以基本下载后都能用。 3.因为部署环境没在windows,所以最后没使用jacob。 4.代码最后是直接转...
Java中PDF转图片