ghost4j PDF 转图片

阅读更多

之前项目采用pdf.js在支持html5的浏览器播放pdf运行的好好的,后台有反馈所有些用户打不开,后来发现会被杀毒软件拦截++,无赖,只好将pdf再转换为图片再使用jquery图片轮播插件在客户端播放。找资料时使用了itext 等pdfjar包,发现有些pdf转换会出现失真的现象(图片丢失),最后采用ghost4j虚拟打印的方式转换才解决了失真的问题,下面贴转换代码,由于附件大于10M,只能自行搜索下载了(exe及jar包)

 

public static int execute(File sourceFile, String outputFileName) throws IOException {
    	PDFDocument document = new PDFDocument();
        document.load(sourceFile);
        SimpleRenderer renderer = new SimpleRenderer();
        // set resolution (in DPI)
        renderer.setResolution(300);
        try {
			List images = renderer.render(document);
			for (int i = 0; i < images.size(); i++) {
				//使用jpg会更小,但是要修改之前上传文件的附件类型
				File imageFile = new File(outputFileName +  (i + 1) + ".png");
	            if(!imageFile.getParentFile().exists()){
	            	imageFile.getParentFile().mkdirs();
				}
	            RenderedImage renImage = (RenderedImage) images.get(i);
            	ImageIO.write(renImage, "png", imageFile);
            	if(renImage.getWidth() > 960){//大于960px 按800px的宽度进行压缩
            		
            		Thumbnails.of(imageFile).width(960)
		                //.size(960, 100)
		                .toFile(imageFile);
            		
	            }
            }
			return images.size();
		} catch (Exception e) {
			e.printStackTrace();
		}
        return -1;
    }

 

值得一提的是jpg会比png的磁盘size更小哦

 

 图片压缩jar包,在附件里面,其是一个开源项目,有兴趣也可以搜索看看。

  • thumbnailator.jar (127.7 KB)
  • 下载次数: 1

你可能感兴趣的:(ghost4j,Thumbnails)