zoukankan      html  css  js  c++  java
  • C# 压缩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:UsersAdministratorDesktopInput.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:UsersAdministratorDesktopInput.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");

      }

      }

      }

      复制代码(编辑:雷林鹏 来源:网络)

  • 相关阅读:
    ArrayList用法
    MessageBox
    将文本文件导入Sql数据库
    在桌面和菜单中添加快捷方式
    泡沫排序
    Making use of localized variables in javascript.
    Remove double empty lines in Visual Studio 2012
    Using Operations Manager Connectors
    Clear SharePoint Designer cache
    Programmatically set navigation settings in SharePoint 2013
  • 原文地址:https://www.cnblogs.com/pengpeng1208/p/9428566.html
Copyright © 2011-2022 走看看