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

C# 压缩PDF文件

PDF 文件可以包含文本、图片及各种媒体元素,但如果文件太大则会影响传输效果同时也会占用过多磁盘空间。通过压缩PDF文件,能够有效减小文件大小,从而提高传输效率并节省存储空间。想要通过C#代码快速有效地压缩 PDF 文件,下面是实现思路:

在 C# 中压缩 PDF

1、在VS中使用 NuGet包管理器将 “spire.pdf” 安装到程序中,并导入所需的命名空间。(也可下载Spire.PDF后手动引入);

2、实例化 PdfCompressor 类对象并加载需压缩的PDF文件;

3、通过 TextCompressionOptions 类来压缩PDF文件中的字体;

//获取文本压缩选项TextCompressionOptions textCompression = compressor.Options.TextCompressionOptions;
//设置是否压缩字体
textCompression.CompressFonts = true;
//设置是否嵌入字体
textCompression.UnembedFonts = true;

4. 通过 ImageCompressionOptions 类来压缩PDF文件中的图片;

//获取图片压缩选项ImageCompressionOptions imageCompression = compressor.Options.ImageCompressionOptions;
//设置是否压缩图片
imageCompression.CompressImage = true;
//设置图片质量
imageCompression.ImageQuality = ImageQuality.Low;
//设置是否调整图片大小
imageCompression.ResizeImages = true;

5. 保存压缩后的PDF文件。

PDF压缩前后效果对比如图:

▶ Spire.PDF for .NET 优化了压缩PDF文件的方法,在压缩PDF中的图片时,将图片质量设置为 low, 压缩效果最好,但可能文件可读性会受到一定影响。在使用时可根据自己的需求来设置图片质量 (High/ Medium/ Low)。

附上完整代码供自行测试:

using Spire.Pdf;
using Spire.Pdf.Conversion.Compression;namespace CompressPdf
{class Program{static void Main(string[] args){//实例化 PdfCompressor 类对象并加载PDF文件PdfCompressor compressor = new PdfCompressor("文件.pdf");//获取文本压缩选项TextCompressionOptions textCompression = compressor.Options.TextCompressionOptions;//设置是否压缩字体textCompression.CompressFonts = true;//设置是否嵌入字体textCompression.UnembedFonts = true;//获取图片压缩选项ImageCompressionOptions imageCompression = compressor.Options.ImageCompressionOptions;//压缩图片imageCompression.CompressImage = true;//设置图片质量imageCompression.ImageQuality = ImageQuality.High;//调整图片大小imageCompression.ResizeImages = true;//将压缩后PDF保存至指定位置compressor.CompressToFile("压缩.pdf");}}
}

想了解C#操作PDF文件的更多示例,点击前往Spire.PDF教程页

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

相关文章:

  • JS点击图片指定对象变色两种方法
  • 什么是浏览器指纹?指纹浏览器如何避免浏览器指纹的追踪识别?
  • uni-app 、Spring Boot 、ant Design 打造的一款跨平台包含小说(仿真翻页、段落听书)、短视频、壁纸等功能含完备后台管理的移动应用
  • STM32-EXTI中断
  • 2023云栖大会,Salesforce终敲开中国CRM市场
  • 工业镜头接口类型
  • 生产环境中oracle dba权限检查和回收相关命令汇总
  • 实现微信转账到零钱经验
  • SpringCloud——负载均衡——OpenFeign
  • 力扣370周赛
  • EMNLP2023 | 让模型学会将提示插入到合适的中间层
  • 【PG】PostgreSQL单机部署(简洁命令版)
  • AI:69-基于深度学习的音乐推荐
  • php 使用phpoffice/phpspreadsheet拓展实现导出图片
  • 几种解决mfc140.dll文件缺失的方法,电脑提示mfc140.dll怎么办
  • 并发修改异常
  • split() 函数实现多条件转为数据为数组类型
  • 【Springboot】Vue3-Springboot引入JWT实现登录校验以及常见的错误解决方案
  • VueCli 自定义创建项目及配置
  • 2024年节假日sql脚本(区分休息日、节假日、工作日、调休工作)
  • vue3介绍
  • Spark SQL自定义collect_list分组排序
  • 2023年云计算的发展趋势如何?
  • uniapp中picker 获取时间组件如何把年月日改成年月日默认时分秒为00:00:00
  • k8s operator
  • 使用io_uring
  • LeetCode算法题解(回溯)|LeetCode93. 复原 IP 地址、LeetCode78. 子集、LeetCode90. 子集 II
  • vue、react数据绑定的区别?
  • 前端Vue 页面滑动监听 拿到滑动的坐标值
  • CSS实现鼠标移至图片上显示遮罩层及文字效果