网络PDF文件转图片并通过nginx代理预览

一、网络PDF转图片

javascript 复制代码
/**
     * @param pdfOss      原文件
     * @param desFilePath 生成图片的路径
     * @param desFileName 生成图片的名称(多页文档时会变成:名称+下划线+从1开始的数字)
     * @param imageType   图片类型
     * @return
     */
    public static Pair<Boolean, Object> pdfToImage(String pdfOss, String desFilePath, String desFileName, String imageType) {
        File destination = new File(desFilePath);
        if (!destination.exists()) {
            destination.mkdirs();
        }
        try {
            URL url = new URL(pdfOss);
            PDDocument document = PDDocument.load(url.openStream());
            PDFRenderer pdfRenderer = new PDFRenderer(document);
            //获取PDF文档的页数
            int pageCount = document.getNumberOfPages();
            System.out.println("文档一共" + pageCount + "页");
            List<String> fileList = new ArrayList<>();
            for (int i = 0; i < pageCount; i++) {
                //只有一页的时候文件名为传入的文件名,大于一页的文件名为:文件名_自增加数字(从1开始)
                String realFileName = pageCount > 1 ? desFileName + "_" + (i + 1) : desFileName;
                //每一页通过分辨率和颜色值进行转化
                BufferedImage bufferedImage = pdfRenderer.renderImageWithDPI(i, 400, ImageType.RGB);
                String filePath = desFilePath + File.separator + realFileName + "." + imageType;
                //写入文件
                ImageIO.write(bufferedImage, imageType, new File(filePath));
                String shortPath = "/pdf2img/"+ realFileName + "." + imageType;
                //文件名存入list
                fileList.add(shortPath);
            }
            return Pair.of(true, fileList);
        } catch (Exception e) {
            e.printStackTrace();
            return Pair.of(false, "PDF转化图片异常");
        }
    }

二、配置nginx预览

相关推荐
l***066 小时前
Ubuntu 系统下安装 Nginx
数据库·nginx·ubuntu
你挚爱的强哥8 小时前
【sgSelectExportDocumentType】自定义组件:弹窗dialog选择导出文件格式word、pdf,支持配置图标和格式名称,触发导出事件
vue.js·pdf·word
阿星智力囊17 小时前
Thinkphp6+nginx环境报错信息不显示,接口直接报500和CORS跨域(错误的引导方向),真坑啊
运维·nginx·php·thinkphp6
L***865321 小时前
Failed to restart nginx.service Unit nginx.service not found
运维·nginx
z***56561 天前
Nginx实现接口复制
运维·nginx·junit
云和数据.ChenGuang1 天前
mysqld.service is not a native service问题解决!
运维·nginx·运维技术·运维工程师技术
Altair12311 天前
nginx的https的搭建
运维·网络·nginx·云计算
记得记得就1512 天前
【Nginx 性能优化与防盗链】
运维·nginx·性能优化
a***59262 天前
用nginx正向代理https网站
运维·nginx·https