PDF文档是一种支持特长文件,集成度和安全可靠性都较高的文件格式,在各个领域都应用广泛。在处理PDF文档时,常常也会遇到包含很多图片的PDF文档,这样的文档会占用比较大的空间,而且在文件传输时也确实会耗费不少时间。解决办法之一就是将文档中的图片进行压缩,使文档变小。这里推荐两种压缩PDF文档图片的方法。方法中用到了组件Spire.PDF for .NET.(转载自博客http://www.cnblogs.com/Yesi/p/7928947.html)
?
方法一??
class="c#" name="code">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"); } } }
?
?
?