多语言展示
当前在线:919今日阅读:57今日分享:41

C# 如何压缩PDF图片

文档中包含图片的话,会使得整个文档比较大,占用存储空间且不利于快速、高效的传输文件。解决办法之一就是对图片进行压缩,在下面的示例中,将介绍2种通过C#来实现PDF图片文档压缩的方法。
工具/原料
1

Spire.PDF for .NET 4.0

2

Visual Studio

Dll引用

下载安装该类库后,注意在程序中引用Spire.Pdf.dll,dll文件可在安装路径下的Bin文件夹中获取

方法1

C#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');        }    }}

方法2

C#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');         }    }}

推荐信息