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>
相关推荐
漂亮的小碎步丶1 分钟前
【4】Spring Boot项目中Spring核心容器原理详解
java·后端·spring
过期动态2 分钟前
JDBC进阶篇:拓展功能与连接池运用详解
java·开发语言·数据库·mysql·oracle·intellij-idea·mybatis
applebomb2 分钟前
经济、能打的vibe coding后端组合:IDEA+Claude Code(WSL)+GLM4.6安装与配置
java·idea·ai编程·vibecoding
布伦鸽3 分钟前
C# WPF -MaterialDesignTheme 找不到资源“xxx“问题记录
开发语言·c#·wpf
枫叶丹43 分钟前
【Qt开发】Qt窗口(十) -> QInputDialog 输入对话框
c语言·开发语言·数据库·c++·qt
杰瑞不懂代码5 分钟前
基于 MATLAB 的 BPSK 在 AWGN 信道下误码率仿真与性能分析
开发语言·网络·matlab
zore_c5 分钟前
【C语言】EasyX图形库——实现游戏音效(详解)(要游戏音效的看过来!!!)
c语言·开发语言·经验分享·笔记·游戏
qq_381454997 分钟前
设计模式详解:代码架构的艺术
开发语言·javascript·ecmascript
行走的陀螺仪8 分钟前
Vue3 项目单元测试全指南:价值、Vitest 落地与提效方案
开发语言·前端·单元测试·html5·vitest
亿坊电商9 分钟前
在搭建PHP框架时如何优雅处理错误与异常?
开发语言·php·代码规范