C# 压缩PDF图片

文档中包含图片的话,会使得整个文档比较大,占用存储空间且不利于快速、高效的传输文件。针对一些包含大量高质图片的PDF文档,若是对图片进行压缩,可以有效减少文档的占用空间。并且,在文档传输过程中也可以减少传送时间,提高效率。本文将介绍2种通过C#来实现PDF图片文档压缩的方法。使用此方法,需要用到最新版本组件Spire.PDF for .NET3.9.462。下面是通过C#代码来压缩图片,从而实现整个PDF文档压缩的方法。

提示:编辑代码前,需要安装该组件,并添加引用dll文件到项目程序中,同时添加指令。

方法一

 using Spire.Pdf;
 using System.Drawing;
 using Spire.Pdf.Graphics;
 using Spire.Pdf.Exporting;
 
 namespace CompressImage_PDF
 {
     class Program
     {
         static void Main(string[] args)
         {
             //初始化一个PdfDocument类实例并加载一个pdf文档
             PdfDocument doc = new PdfDocument(@"C:\Users\Administrator\Desktop\Input.pdf");
             //禁用增量更新
             doc.FileInfo.IncrementalUpdate = false;
             //遍历PDF所有页,诊断页面是否含有图片
             foreach (PdfPageBase page in doc.Pages)
             {
                 if (page != null)
                 {
                     if (page.ImagesInfo != null)
                     {
                         foreach (PdfImageInfo info in page.ImagesInfo)
                         {
                             //调用方法TryCompressImage()压缩图片
                             page.TryCompressImage(info.Index);
                         }
                     }
                 }
             }
             //保存文档
             doc.SaveToFile("Output.pdf");
         }
     }
 }

 

 方法二

 using Spire.Pdf;
 using System.Drawing;
 using Spire.Pdf.Graphics;
 
 namespace CompressImage_PDF
 {
     class Program
     {
         static void Main(string[] args)
         {
 
             //初始化一个PdfDocument类实例并加载一个pdf文档
             PdfDocument doc = new PdfDocument(@"C:\Users\Administrator\Desktop\Input.pdf");
 
             //禁用增量更新
             doc.FileInfo.IncrementalUpdate = false;
 
             //遍历所有PDF页,提取图片
             foreach (PdfPageBase page in doc.Pages)
             {
                 Image[] images = page.ExtractImages();
                 //遍历所有图片
                 if (images != null && images.Length > 0)
                 {
                     for (int j = 0; j < images.Length; j++)
                     {
                         Image image = images[j];
                         PdfBitmap bp = new PdfBitmap(image);
                         //设置bp.Quality值,压缩图片
                         bp.Quality = 20;
                         //将压缩后的图片替换原有图片
                         page.ReplaceImage(j, bp);
                     }
                 }
             }
             //保存文档
             doc.SaveToFile("Output2.pdf");
 
         }
     }
 }

针对包含大量高质图片的PDF文档,以上方法可以有效压缩文档,并且不会出现市面上压缩软件在压缩文档时存在的广告水印或者破坏源文档的情况。方法介绍到此,如果对您有用,欢迎转载(转载请注明出处)。

(本文完)

转载于:https://www.cnblogs.com/Yesi/p/7928947.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值