java 实现pdf转换成图片 |
您所在的位置:网站首页 › 金秀熙百度百科 › java 实现pdf转换成图片 |
参考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.22.实现代码 /** * 转换全部的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 |