java根据pdf文件的url地址,截取第一页作为图片

1.得到pdf文件的url地址,在代码中截取第一页作为图片,以base64格式加密输出

2.直接贴代码

private Map<String,Object> getFirstPageAsImgByPdf(String url){

        Map<String,Object> result = new HashMap<>();

        String res = null;
        PDDocument pd = null;
        try {
            RestTemplate restTemplate = new RestTemplate();
            ResponseEntity<byte[]> response = restTemplate.getForEntity(url, byte[].class);
            // 加载pdf文件
            pd = PDDocument.load(new ByteArrayInputStream(response.getBody()));
            // 准备pdf文件渲染对象
            PDFRenderer pdfRenderer = new PDFRenderer(pd);
            // 判断pdf页数
            if (pd.getNumberOfPages() > 0) {
                // 设置页数(首页从0开始)、每英寸点数、图片类型
                BufferedImage bim = pdfRenderer.renderImageWithDPI(0, 96, ImageType.RGB);
                ByteArrayOutputStream bos = new ByteArrayOutputStream();
                // 将图片写入到图片对象中
                ImageIO.write(bim, "png", bos);
                String base64Img = Base64Utils.encodeToString(bos.toByteArray());
                res = "data:image/jpg;base64," + base64Img;

                result.put("flag",true);

                result.put("message",res);
                return result;
            }
                result.put("flag",false);
                result.put("message","文件页数为0,请上传正确的文件");
                return result;
        } catch (Exception ex) {
                result.put("flag",false);
                result.put("message","获取pdf首页作为图片失败");
                return result;
        }

}

3.结果map中返回true,则成功,并返回base64加密的文件流信息;返回false,返回报错提示信息

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值