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); 14 } 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); 5 int pageCount = doc.getNumberOfPages(); for(int i=0;i<pageCount;i++){ BufferedImage image = renderer.renderImageWithDPI(i, 296); // BufferedImage image = renderer.renderImage(i, 2.5f); ImageIO.write(image, "PNG", new File("C:\\pdfbox_image.png")); } } catch (IOException e) { e.printStackTrace(); }
例子中rederImageWithDPI的第二个参数为dpi分辨率单位,可根据需求调节大小,代码第八行提供了架包里另一种转图片的方法,第二个参数为缩放比。
三、jpedal。效果不太理想,貌似对中文支持不太好,下面的lgpl版本是开源版。
1、下载jpedal的架包,并导入项目中,如下:
2、附上代码例子:
PdfDecoder decode_pdf = new PdfDecoder(true); try { decode_pdf.openPdfFile("c:\\test.pdf"); //file // decode_pdf.openPdfFile("C:/jpedalPDF.pdf", "password"); //encrypted file // decode_pdf.openPdfArray(bytes); //bytes is byte[] array with PDF // decode_pdf.openPdfFileFromURL("http://www.mysite.com/jpedalPDF.pdf",false); // decode_pdf.openPdfFileFromInputStream(in, false); int start = 1, end = decode_pdf.getPageCount(); for(int i = start; i < end+1; i++){ BufferedImage img=decode_pdf.getPageAsImage(i); try { ImageIO.write(img, "png", new File("C:\\jpedal_image.png")); } catch (IOException e) { e.printStackTrace(); } } decode_pdf.closePdfFile(); } catch (PdfException e) { e.printStackTrace(); }
例子的3-7行还提供了几种不同的pdf打开方式,可以根据自己的需要选择使用。
以上这篇java中pdf转图片的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
本文向大家介绍Python 将pdf转成图片的方法,包括了Python 将pdf转成图片的方法的使用技巧和注意事项,需要的朋友参考一下 本篇文章记录如何使用python将pdf文件切分成一张一张图片,包括环境配置、版本兼容问题。 环境配置(mac) 安装ImageMagick brew install imagemagick 这里有个坑,brew安装都是7.x版本,使用wand时会出错,需要你安装
本文向大家介绍java实现图片转base64字符串 java实现base64字符串转图片,包括了java实现图片转base64字符串 java实现base64字符串转图片的使用技巧和注意事项,需要的朋友参考一下 java 图片转base64字符串、base64字符串转图片,具体内容如下 1. 图片转base64字符串: 2. base64字符串转图片: 3. 测试: 效果图: 以上就是本文的全部内
本文向大家介绍C#实现TIF图像转PDF文件的方法,包括了C#实现TIF图像转PDF文件的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现TIF图像转PDF文件的方法。分享给大家供大家参考。具体实现方法如下: 这里介绍使用TIFtoPDF的用法。该工具可以将多个TIF图像文件合并成一个PDF文件 TIFtoPDF.rar文件点击此处本站下载。 Program.cs文件如下:
本文向大家介绍php将html转为图片的实现方法,包括了php将html转为图片的实现方法的使用技巧和注意事项,需要的朋友参考一下 在服务器端解析将编译好的html转换为图片。 由于html一般由客户端浏览器解析,服务器端不能直接解析html代码。所以我们需要借助php类库及扩展完成这一需求。 文件转换过程为 html —> pdf —>png。 需要借助的类库是mPDF ,imagick pdf
本文向大家介绍JavaScript实现简单图片翻转的方法,包括了JavaScript实现简单图片翻转的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript实现简单图片翻转的方法。分享给大家供大家参考。具体如下: 这里先取两个命名smirk1.jpg和smirk2.jpg同样大小的图像 然后运行下面的代码,可以实现简单的图片翻转 希望本文所述对大家的javascript程
本文向大家介绍windows下Python实现将pdf文件转化为png格式图片的方法,包括了windows下Python实现将pdf文件转化为png格式图片的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了windows下Python实现将pdf文件转化为png格式图片的方法。分享给大家供大家参考,具体如下: 最近工作中需要把pdf文件转化为图片,想用Python来实现,于是在网上找啊