网络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 天前
Nginx外置缓存-nginx + memcached
nginx·缓存·memcached
難釋懷1 天前
Nginx外置缓存-nginx + redis
redis·nginx·缓存
DevOpenClub1 天前
用网页快照、静态 HTML 和 PDF 转换接口构建网页归档 Agent
前端·人工智能·pdf·html
☆凡尘清心☆2 天前
CentOS Stream 9 专用 LNMP 全自动一键脚本
linux·运维·mysql·nginx·lnmp·centos stream 9
fthux2 天前
装闭 RenoPit 源码解析(13):生成AI装修闭坑PDF报告
人工智能·ai·pdf·开源·github
似的8352 天前
一步一步学习使用FireMonkey动画() 使用TAnimator类创建动画
linux·学习·nginx
星星在线3 天前
怎么使用Python生成PDF,我开源了PDF Report Generator
python·pdf·开源
海带紫菜菠萝汤3 天前
免费在线翻译器横评:2026年6款PDF翻译工具对比
人工智能·python·pdf
SunnyDays10113 天前
C# 加密和解密 PDF:设置密码、AES 加密及操作权限
pdf·c#·加密 pdf·解除 pdf 密码·pdf 权限设置·pdf 文档安全
SamChan903 天前
WebSocket实现PDF翻译进度实时推送:Go后端+React前端的完整方案
前端·websocket·pdf·c#·react·机器翻译