java 实现pdf转换成图片

您所在的位置:网站首页 pdf文件怎么转成jpg图片 java 实现pdf转换成图片

java 实现pdf转换成图片

2024-07-12 01:05| 来源: 网络整理| 查看: 265

参考1:java实现pdf转换成图片

来源:java 实现pdf转换成图片_ZZ的博客-CSDN博客_java pdf 转图片

1.maven添加jar

org.apache.pdfbox fontbox 2.0.9 org.apache.pdfbox pdfbox 2.0.9 commons-logging commons-logging 1.2

 2.实现代码

/** * 转换全部的pdf * @param fileAddress 文件地址 * @param filename PDF文件名 * @param type 图片类型 */ public static void pdf2png(String fileAddress,String filename,String type) { // 将pdf装图片 并且自定义图片得格式大小 File file = new File(fileAddress+"\\"+filename+".pdf"); try { PDDocument doc = PDDocument.load(file); PDFRenderer renderer = new PDFRenderer(doc); int pageCount = doc.getNumberOfPages(); for (int i = 0; i < pageCount; i++) { BufferedImage image = renderer.renderImageWithDPI(i, 144); // Windows native DPI // BufferedImage srcImage = resize(image, 240, 240);//产生缩略图 ImageIO.write(image, type, new File(fileAddress+"\\"+filename+"_"+(i+1)+"."+type)); } } catch (IOException e) { e.printStackTrace(); } } /** *自由确定起始页和终止页 * @param fileAddress 文件地址 * @param filename pdf文件名 * @param indexOfStart 开始页 开始转换的页码,从0开始 * @param indexOfEnd 结束页 停止转换的页码,-1为全部 * @param type 图片类型 */ public static void pdf2png(String fileAddress,String filename,int indexOfStart,int indexOfEnd,String type) { // 将pdf装图片 并且自定义图片得格式大小 File file = new File(fileAddress+"\\"+filename+".pdf"); try { PDDocument doc = PDDocument.load(file); PDFRenderer renderer = new PDFRenderer(doc); int pageCount = doc.getNumberOfPages(); for (int i = indexOfStart; i < indexOfEnd; i++) { BufferedImage image = renderer.renderImageWithDPI(i, 144); // Windows native DPI // BufferedImage srcImage = resize(image, 240, 240);//产生缩略图 ImageIO.write(image, type, new File(fileAddress+"\\"+filename+"_"+(i+1)+"."+type)); } } catch (IOException e) { e.printStackTrace(); } } 参考2:java中pdf转图片的方法

来源:JAVA中pdf转图片的方法 - PC君 - 博客园

JAVA中实现pdf转图片可以通过第三方提供的架包,这里介绍几种常用的,可以根据自身需求选择使用。

一、icepdf。有收费版和开源版,几种方法里最推荐的。转换的效果比较好,能识别我手头文件中的中文,就是转换后可能字体的关系部分字间距有点宽。因为,字体支持是要收费的,所以转换的图片会带有官方的水印。去水印的方法可以查看另一篇文章:icepdf去水印方法

1、下载icepdf的架包,并导入项目中,这里用到4个,如下:

2、附上代码例子:

String filePath = "c:/test.pdf";   Document document = new Document();   document.setFile(filePath);   float scale = 2.5f;//缩放比例   float rotation = 0f;//旋转角度   for (int i = 0; i < document.getNumberOfPages(); i++) {     BufferedImage image = (BufferedImage)     document.getPageImage(i, GraphicsRenderingHints.SCREEN, org.icepdf.core.pobjects.Page.BOUNDARY_CROPBOX, rotation, scale);     RenderedImage rendImage = image;     try {     File file = new File("c:/iecPDF_" + i + ".png");     ImageIO.write(rendImage, "png", file);      } catch (IOException e) {     e.printStackTrace();     }   image.flush();   }   document.dispose();

例子中是pdf转png格式的,也可以将12、13行改成jpg,转出jpg格式的,但是从转换效果来看png的清晰度会相对较高。有个小技巧是12行改成jpg,但13行使用png,也就是转换成jpg格式但有png清晰度的图片。

二、pdfbox。转换效果还可以,能识别我手中文件大部分内容,有部分内容无法识别。

1、下载pdfbox的架包,并导入项目,这里用到2个,如下:

2、附上代码例子:

File file = new File("c:\\test.pdf");   try {     PDDocument doc = PDDocument.load(file);     PDFRenderer renderer = new PDFRenderer(doc);      int pageCount = doc.getNumberOfPages();     for(int i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3