Spire.PDF for .NET 4.0
Visual Studio
下载安装该类库后,注意在程序中引用Spire.Pdf.dll,dll文件可在安装路径下的Bin文件夹中获取
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'); } }}
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'); } }}