java压缩pdf体积,图片体积

pdf整体进行压缩,图片进行压缩

java 复制代码
        // 生成主证书的PDF路径  创建一个文件
        String pdfPath = UploadDown.createFile(".pdf");
          outputStream = new FileOutputStream(pdfPath);
             bufferedOutputStream = new BufferedOutputStream(outputStream);
            writer = PdfWriter.getInstance(document, bufferedOutputStream);
            writer.setCompressionLevel(compressionLevel); // 压缩9
            writer.setFullCompression(); // 全面压缩

发现压缩力度不大,主要还是要对pdf中的图片进行压缩,我这里压缩图片的精度设置成2,具体根据你的业务逻辑来,

java 复制代码
 public static Image optimizeImage(String source) {
        // 这个自己调,如果图片过大,可以调小这个数字
        double quality = 0.2;
        try {
            ByteArrayOutputStream os = new ByteArrayOutputStream();
            System.out.println("压缩图片路径:"+source);
            if (source.startsWith("http://") || source.startsWith("https://") || source.startsWith("ftp://")) {
                Thumbnails.of(new URL(source))
                        .scale(1)
                        .outputQuality(quality)
                        .toOutputStream(os);
            } else {
                Thumbnails.of(source)
                        .scale(1)
                        .outputQuality(quality)
                        .toOutputStream(os);
            }
            byte[] bytes = os.toByteArray();
            // 压缩后的图片用流接收
            Image image = Image.getInstance(bytes);
            return image;
        } catch (Exception e) {
            log.error("压缩图片失败", e);
            e.printStackTrace();
            throw new MyException("压缩图片失败"+e.getMessage());
        }
    }

压缩图片报错的话:

报错信息:javax.imageio.IIOException: Unsupported Image Type

是图片的格式对不上

添加下面的依赖试试:

XML 复制代码
     <!-- cmyk格式图片转换 -->
        <dependency>
            <groupId>com.twelvemonkeys.imageio</groupId>
            <artifactId>imageio-jpeg</artifactId>
            <version>3.3</version>
        </dependency>
        <dependency>
            <groupId>com.twelvemonkeys.imageio</groupId>
            <artifactId>imageio-tiff</artifactId>
            <version>3.3</version>
        </dependency>
相关推荐
kruptos3 小时前
分布式系统怎么“选主“?Raft 共识一次讲清
开发语言·分布式·php·共识算法
xcl09254 小时前
幼儿托育系统开发实战:从需求分析到上线全流程指南
java·大数据·需求分析
吴声子夜歌4 小时前
ApacheCommons——commons-cli(命令行参数解析)
java·开发语言·apache
小小猪的春天4 小时前
Java 手写第一个 MCP Server:Spring AI MCP 半小时跑通
java·人工智能·spring boot·ai编程
find1star4 小时前
LeetCode 141:环形链表
java·算法·leetcode·链表
今天AI了吗5 小时前
DeepSeek Harness 深度解析:从评测架构到实战落地
java·网络·数据库·人工智能·架构·java-ee
benchmark_cc5 小时前
REST API 和 Python SDK 应该怎么选?量化交易数据接口选型实战
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
王的宝库5 小时前
Go 项目结构:从单文件到标准工程布局
开发语言·后端·golang
Tairitsu_H5 小时前
[C++] 深入理解红黑树:封装set与map
开发语言·c++·set·map·红黑树·模拟实现
许彰午5 小时前
27-AuthService登录链路
java·低代码·架构