C# 压缩PDF文件

  • C# 压缩PDF文件已关闭评论
  • 101 次浏览
  • A+
所属分类:.NET技术
摘要

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

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

在 C# 中压缩 PDF

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

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

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

//获取文本压缩选项 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压缩前后效果对比如图:

C# 压缩PDF文件

 

Spire.PDF for .NET 提供了接口来压缩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教程页