C#壓縮PDF圖片

PDF文檔是一種支持特長文件,集成度和安全可靠性都較高的文件格式,在各個領域都應用廣泛。在處理PDF文檔時,常常也會遇到包含很多圖片的PDF文檔,這樣的文檔會佔用比較大的空間,而且在文件傳輸時也確實會耗費不少時間。解決辦法之一就是將文檔中的圖片進行壓縮,使文檔變小。這裏推薦兩種壓縮PDF文檔圖片的方法。方法中用到了組件Spire.PDF for .NET.(轉載自博客http://www.cnblogs.com/Yesi/p/7928947.html)

 

方法一  

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");
 
         }
     }
 }

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章