博客信息

pdf转png,解决微信和android对pdf支持不好的问题

0
发布时间:『 2017-06-02 15:25』  博客类别:开源项目  阅读(886) 评论()

问题背景

       最近在完成电子发票的相关业务,调用第三方返回的是经过编码的一段流,直接写pdf是没有问题的,但是微信和android对于pdf的支持不是很好,得下载以后再去看,体验比较差,但是微信和android都是直接可以查看图片的,所以就想着把pdf的流转成图片

解决方案

一:引入maven依赖

<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>2.0.6</version>
</dependency>

<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>fontbox</artifactId>
    <version>2.0.6</version>
</dependency>

二:代码示例

public static Boolean makePNG(byte[] data,String filePath){
    Boolean flag=true;
    try {
        PDDocument doc=PDDocument.load(data);
        PDFRenderer render=new PDFRenderer(doc);
        int pageCount=doc.getNumberOfPages();
        for(int i=0;i<pageCount;i++){
            BufferedImage image=render.renderImageWithDPI(i,400);
            ImageIO.write(image,"png",new File(filePath));
        }
    }catch (Exception e){
        flag = false;
        logger.error("InvoiceServiceImpl-Base64Utils-makePNG  is exception cause:{}", Throwables.getStackTraceAsString(e));
    }
    return flag;
}

说明:关于下面的代码,没有具体说明多大,一般设置400图片就已经清晰了,可以完全打印,如果测试调整到1240,则会报错

 BufferedImage image=render.renderImageWithDPI(i,400);


关键字:   pdf转png     解决微信不支持pdf查看问题  
Copyright © 2012-2017 yinbin.lan 版权所有   京ICP备16047123号