C# 压缩PDF图片

简介: 文档中包含图片的话,会使得整个文档比较大,占用存储空间且不利于快速、高效的传输文件。针对一些包含大量高质图片的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文档,以上方法可以有效压缩文档,并且不会出现市面上压缩软件在压缩文档时存在的广告水印或者破坏源文档的情况。方法介绍到此,如果对您有用,欢迎转载(转载请注明出处)。

(本文完)

目录
相关文章
|
3月前
|
Python
Python 压缩PDF减小文件大小
【8月更文挑战第6天】介绍了三种用Python压缩PDF文件的方法:1) 使用`pdfcompressor`库,安装后可通过简单命令压缩文件;2) 利用`PyPDF2`库,需手动设置压缩参数;3) 采用`pdfsizeopt`库,一键优化PDF大小。各方法均提供示例代码,便于快速实现文件压缩。
491 0
|
2月前
|
数据采集 JavaScript C#
C#图像爬虫实战:从Walmart网站下载图片
C#图像爬虫实战:从Walmart网站下载图片
|
2月前
|
Shell Python
pdf压缩程序
【9月更文挑战第05天】
50 5
|
3月前
|
XML 缓存 JSON
为什么浏览器中有些图片、PDF等文件点击后有些是预览,有些是下载
为什么浏览器中有些图片、PDF等文件点击后有些是预览,有些是下载
255 0
|
1月前
|
存储 C#
C#使用哈夫曼编码实现压缩与解压
C#使用哈夫曼编码实现压缩与解压
25 0
|
2月前
pdf压缩
【9月更文挑战第07天】
58 7
|
2月前
|
Shell Python
pdf压缩程序
【9月更文挑战第07天】
49 5
|
2月前
|
Python
Python办公自动化:提取pdf文件中的图片
Python办公自动化:提取pdf文件中的图片
23 0
|
3月前
|
数据安全/隐私保护 Python Windows
三种方法,Python轻松提取PDF中全部图片
三种方法,Python轻松提取PDF中全部图片
|
3月前
|
Python
Python——批量将PDF文件转为图片
Python——批量将PDF文件转为图片
37 2