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

相关推荐
2501_930707782 小时前
使用C#代码压平 PDF 表单字段
数据库·pdf·c#
daanpdf3 小时前
新高考答题卡模板PDF可打印(语文数学英语一卷二卷等)
pdf·高考
优化控制仿真模型4 小时前
【26年6月】英语四级高频核心词汇1500+历年真题pdf电子版
经验分享·pdf
曹牧4 小时前
Java:PDF文件扁平化处理
java·开发语言·pdf
taocarts_bidfans4 小时前
Taoify与Redis、Nginx集成实战:提升跨境独立站性能与并发能力
数据库·redis·nginx·跨境电商·独立站
bug攻城狮6 小时前
Nginx在前后端分离中的作用对比
运维·nginx
奇树谦6 小时前
离线英文 PDF 翻译工具使用说明
pdf
xiaoliuliu123456 小时前
Mendeley 2.1 文献管理软件安装教程:文献管理+PDF标注
pdf
其实秋天的枫7 小时前
【26年6月】英语四级高频核心词汇1500+历年真题pdf电子版
经验分享·pdf
手揽回忆怎么睡8 小时前
京东云Ubuntu22..04安装jdk21、MySQL8、nginx
运维·nginx·京东云