博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 压缩PDF图片
阅读量:6906 次
发布时间:2019-06-27

本文共 2436 字,大约阅读时间需要 8 分钟。

文档中包含图片的话,会使得整个文档比较大,占用存储空间且不利于快速、高效的传输文件。针对一些包含大量高质图片的PDF文档,若是对图片进行压缩,可以有效减少文档的占用空间。并且,在文档传输过程中也可以减少传送时间,提高效率。本文将介绍2种通过C#来实现PDF图片文档压缩的方法。使用此方法,需要用到最新版本组件。下面是通过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://blog.51cto.com/eiceblue/2046048

你可能感兴趣的文章
nginx 跨域。。。掉坑里了,小心
查看>>
pyextend库-merge可迭代对象合并函数
查看>>
RHEL6 配置本地YUM源
查看>>
【算法】双线性插值
查看>>
c++中冒号(:)和双冒号(::)的用法
查看>>
作用域、闭包、模拟私有属性
查看>>
http tunnel使用简介(ZT)
查看>>
CefSharp的简单应用,制作自动学习视频软件(基于Chromium)
查看>>
Wdcp Apache、NGINX支持中文URL图片、文件名的解决方法
查看>>
非模态窗口的创建方法
查看>>
ORA-00445: Background Process "xxxx" Did Not Start After 120 Seconds
查看>>
转:美团数据库运维自动化系统
查看>>
数据分析之分布式爬虫---分布式爬虫架构
查看>>
直升机的革命---鱼鹰运输机
查看>>
模式识别和机器学习中的概率知识
查看>>
windows下搭建PHP环境
查看>>
Split()函数
查看>>
Linux 常用基本指令
查看>>
同一个dom上加单击事件和双击事件的冲突解决办法,双击事件方法进不去
查看>>
HTML 静态网页制作12月2日表单样式
查看>>