C# 如何删除PDF文档中的空白页面

2025-10-20 15:05:37

1、安装该类库后,注意在程序中引用Spire.PDF.dll 和Spire.License(文件可在安装路径下的Bin文件夹中获取)

C# 如何删除PDF文档中的空白页面

1、添加using指令

using Spire.Pdf;

using System.Drawing;

using Spire.Pdf.Graphics;

2、应用许可证            

Spire.License.LicenseProvider.SetLicenseFileName("license.elic.xml");

3、创建PdfDocument类对象,并加载PDF文档            

PdfDocument document = new PdfDocument();            

document.LoadFromFile("Test.pdf");

4、遍历文档中所有页面             

for (int i = document.Pages.Count - 1; i >= 0; i--)            

{                

//诊断页面是否为空白页               

 if (document.Pages[i].IsBlank())                

{                    

//删除空白页                    

document.Pages.RemoveAt(i);                

}                

else                

{                   

 //将PDF页转换为Bitmap图像                    

Image image = document.SaveAsImage(i, PdfImageType.Bitmap);                    

//诊断图片是否为空白图片                    

if (IsImageBlank(image))                    

{                        

//移除包含空白图片的页面                       

 document.Pages.RemoveAt(i);                    

}               

}            

}

这里需要自定义一个方法来判定可能包含的是否是空白图片

//自定义方法IsImageBlank()诊断图片是否为空白图片        

public static bool IsImageBlank(Image image)        

{            

//初始化Bitmap类实例,遍历文档中所有图片            

Bitmap bitmap = new Bitmap(image);            

for (int i = 0; i < bitmap.Width; i++)            

{                

for (int j = 0; j < bitmap.Height; j++)                

{                    

Color pixel = bitmap.GetPixel(i, j);                    

if (pixel.R < 240 || pixel.G < 240 || pixel.B < 240)                    

{                        

return false;                    

}                

}            

}            

return true;        

}

1、using Spire.Pdf;

using System.Drawing;

using Spire.Pdf.Graphics;

namespace DeleteBlankPage_PDF

{    

class Program    

{        

static void Main(string[] args)        

{            

//应用许可证            

Spire.License.LicenseProvider.SetLicenseFileName("license.elic.xml");        //创建PdfDocument类对象,并加载PDF文档            

PdfDocument document = new PdfDocument();            

document.LoadFromFile("Test.pdf");            

//遍历文档中所有页面            

for (int i = document.Pages.Count - 1; i >= 0; i--)            

{                

//诊断页面是否为空白页                

if (document.Pages[i].IsBlank())                

{                    

//删除空白页                    

document.Pages.RemoveAt(i);                

}                

else                

{                    

//将PDF页转换为Bitmap图像                    

Image image = document.SaveAsImage(i, PdfImageType.Bitmap);                    

//诊断图片是否为空白图片                    

if (IsImageBlank(image))                    

{                        

//移除包含空白图片的页面                        

document.Pages.RemoveAt(i);                    

}                

}            

}            

//保存并打开文档            

document.SaveToFile("RemoveBlankPage.pdf", FileFormat.PDF);            

System.Diagnostics.Process.Start("RemoveBlankPage.pdf");        

}        

//自定义方法IsImageBlank()诊断图片是否为空白图片        

public static bool IsImageBlank(Image image)        

{            

//初始化Bitmap类实例,遍历文档中所有图片            

Bitmap bitmap = new Bitmap(image);            

for (int i = 0; i < bitmap.Width; i++)            

{                

for (int j = 0; j < bitmap.Height; j++)                

{                    

Color pixel = bitmap.GetPixel(i, j);                    

if (pixel.R < 240 || pixel.G < 240 || pixel.B < 240)                    

{                        

return false;                    

}                

}           

}            

return true;        

}    

}

2、完成代码步骤后,调试运行程序,生成文件。下面是删除空白页后的前后效果对比。

C# 如何删除PDF文档中的空白页面

C# 如何删除PDF文档中的空白页面

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢