网络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预览

相关推荐
新缸中之脑1 小时前
用MonkeyOCR解析复杂PDF
pdf
larance5 小时前
Gunicorn + Nginx+systemd 配置flask
nginx·flask·gunicorn
文艺理科生Owen6 小时前
Nginx 路径映射深度解析:从本地开发到生产交付的底层哲学
运维·nginx
tiantangzhixia11 小时前
Master PDF Linux 平台的 5.9.35 版本安装与自用
linux·pdf·master pdf
kong790692812 小时前
Nginx性能优化
java·nginx·性能优化
Harvey9031 天前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s
全栈工程师修炼指南1 天前
Nginx | stream content 阶段:UDP 协议四层反向代理浅析与实践
运维·网络·网络协议·nginx·udp
开开心心就好1 天前
发票合并打印工具,多页布局设置实时预览
linux·运维·服务器·windows·pdf·harmonyos·1024程序员节
鹏北海1 天前
micro-app 微前端项目部署指南
前端·nginx·微服务
全栈工程师修炼指南1 天前
Nginx | stream content 阶段:TCP 协议四层反向代理浅析与实践
运维·网络·网络协议·tcp/ip·nginx