当前位置: 首页 > news >正文

java压缩pdf体积,图片体积

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

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

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

 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

是图片的格式对不上

添加下面的依赖试试:

     <!-- 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>

http://www.lryc.cn/news/226168.html

相关文章:

  • Ubuntu(WSL2) 安装最新版本的 GCC
  • lua 时间差功能概略
  • 【C++11】左值引用,右值引用,移动/复制构造,完美转发
  • 解决找不到x3daudio1_7.dll的方法,快速解决x3daudio1_7.dll丢失问题
  • LeetCode:2300. 咒语和药水的成功对数(C++)
  • 【Spring生命周期核心底层源码之剖析】
  • 关于Thread.sleep方法的一些使用
  • MeterSphere | 前端入参加密
  • 微服务如何做负载均衡?
  • C++高级编程:构建高效稳定接口与深入对象设计技巧
  • Qt——连接mysql增删查改(仓库管理极简版)
  • Panda3d 场景管理
  • 京东数据分析(京东销量):2023年9月京东投影机行业品牌销售排行榜
  • uniapp cli化一键游项目启动报错总结
  • 我的月光宝盒初体验失败了
  • vue3+vite搭建后台项目-1 引入element-plus 中文包,打包时报错问题
  • 带你详细了解git的【分支和标签】
  • 分类预测 | Matlab实现PSO-LSTM粒子群算法优化长短期记忆神经网络的数据多输入分类预测
  • Spring 事务失效的场景
  • 酷柚易汛ERP-自定义打印整体介绍
  • activiti命令模式与责任链模式
  • C++20 Text formatting
  • redis-plus-plus--github中文翻译--2
  • Vuex状态管理:Getters :VOA模式
  • 二十三种设计模式全面解析-享元模式(Flyweight Pattern)详解:构建高效共享的对象结构
  • 华为ensp:交换机接口划分vlan
  • PCBA表面污染的分类及处理方法
  • Linux开发工具之编辑器vim
  • 【Hadoop实战】Hadoop指标系统V2分析
  • 【java:牛客每日三十题总结-5】