已解决
java压缩pdf体积,图片体积
来自网友在路上 167867提问 提问时间:2023-11-12 16:08:30阅读次数: 67
最佳答案 问答题库678位专家为你答疑解惑
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>
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"java压缩pdf体积,图片体积":http://eshow365.cn/6-38211-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: 搭建产品帮助中心其实很简单,方法都在这了!
- 下一篇: 容器网络-Underlay和Overlay