如何删除PDF文档里的空白页

日常工作生活中我们经常使用PDF,有时候你会发现PDF文档里面有一页或者好几页空白文档,很多人不知道如何删除这些空白页。网上众多的解决方案中,能解决这个问题的软件大都是收费软件。最近我发现了一个简单利落的免费控件——Free Spire.PDF,不仅免费,而且软件占用内存非常小。下面我跟大家分享一下如何在C#中使用免费控件Free Spire.PDF来删除PDF文档中的空白页。

 

需要添加的命名空间:

1
2
3
using Spire.Pdf;
 
using System.Drawing;

 

原PDF文件截图:

 

详细步骤和代码片段如下:

步骤1创建一个新的PDF文档并加载文件。

1
2
3
PdfDocument document = new PdfDocument();
 
document.LoadFromFile("Tornado.pdf");

 

步骤2遍历PDF页面,检测页面内容,判断其是否为空白页,如果是空白页,则删除空白页。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for (int i = 0; i < document.Pages.Count; i++)
 
{
 
    PdfPageBase originalPage = document.Pages[i];
 
    if (originalPage.IsBlank())
 
    {
 
       document.Pages.Remove(originalPage);
 
       i--;
 
     }
 
}

 

步骤3保存并重新打开PDF文档。

1
2
3
document.SaveToFile("Tornadowithoutblankpage.pdf", FileFormat.PDF);
 
System.Diagnostics.Process.Start("Tornadowithoutblankpage.pdf");

 

效果图:

全部代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
using System;
 
using System.Collections.Generic;
 
using System.Linq;
 
using System.Text;
 
using Spire.Pdf;
 
using Spire.Pdf.Graphics;
 
using System.Drawing;
 
  
 
namespace Tornado
 
{
 
    class Program
 
    {
 
        static void Main(string[] args)
 
        {
 
            PdfDocument document = new PdfDocument();
 
            document.LoadFromFile("Tornado.pdf");
 
            for (int i = 0; i < document.Pages.Count; i++)
 
            {
 
                PdfPageBase originalPage = document.Pages[i];
 
                if (originalPage.IsBlank())
 
                {
 
                    document.Pages.Remove(originalPage);
 
                    i--;
 
                }
 
            }
 
            document.SaveToFile("Tornadowithoutblankpage.pdf", FileFormat.PDF);
 
            System.Diagnostics.Process.Start("Tornadowithoutblankpage.pdf");
 
        }
 
  
 
    }
 
}

 

posted @   E-iceblue  阅读(1920)  评论(3编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
点击右上角即可分享
微信分享提示