PDF 文件中的空白页并不少见,因为它们有可能是作者有意留下的,也有可能是在处理文档时不小心添加的。在阅读或打印文档时,这些空白页可能会比较麻烦,因此很有必要删除它们。在本文中,您将学习如何使用 Spire.PDF for .NET 通过 C# 查找和并删除 PDF 文档中的空白页。
安装 Spire.PDF for .NET
首先,您需要添加 Spire.PDF for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.PDF
C# 查找并删除 PDF 文档中的空白页
Spire.PDF for .NET 提供了 PdfPageBase.IsBlank() 方法来检测 PDF 页面是否为绝对空白。但有些页面看起来是空白的,但实际上包含了白色图像,使用 PdfPageBase.IsBlank() 方法并无法将这些页面视为空白页面。因此,需要创建一个自定义方法 IsImageBlank() 来检测这些白色但非空白的页面。
请注意:该方案必须应用许可证才能完成,如果您没有许可证,请联系 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 获取临时许可证,用于评估目的。
具体步骤如下:
- 创建 PdfDocument 对象。
- 使用 PdfDocument.LoadFromFile() 方法加载 PDF 文件。
- 遍历 PDF 文档中的页面,并使用 PdfPageBase.IsBlank() 方法检测页面是否为空白页面。
- 使用 PdfDocument.Pages.RemoveAt() 方法删除绝对空白的页面。
- 对于非绝对空白的页面,使用 PdfDocument.SaveAsImage() 方法将其保存为图像。然后使用自定义方法 IsImageBlank() 检测转换后的图像是否空白,如果是,则使用 PdfDocument.Pages.RemoveAt() 方法删除这些“空白”页面。
- 使用 PdfDocument.SaveToFile() 方法保存结果文档。
- C#
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
namespace DeleteBlankPage
{
class Program
{
static void Main(string[] args)
{
// 应用授权
Spire.Pdf.License.LicenseProvider.SetLicenseKey("your license key");
// 创建 PdfDocument 对象
PdfDocument document = new PdfDocument();
// 加载 PDF 文档
document.LoadFromFile("汇报.pdf");
// 遍历PDF中的页面
for (int i = document.Pages.Count - 1; i >= 0; i--)
{
// 检测页面是否为空白
if (document.Pages[i].IsBlank())
{
// 删除绝对空白页
document.Pages.RemoveAt(i);
}
else
{
// 将 PDF 页面保存为图像
Image image = document.SaveAsImage(i, PdfImageType.Bitmap);
// 检测转换后的图像是否为空白
if (IsImageBlank(image))
{
// 如果是,则删除页面
document.Pages.RemoveAt(i);
}
}
}
// 保存结果文档
document.SaveToFile("删除空白页.pdf", FileFormat.PDF);
}
// 检测图像是否为空白
public static bool IsImageBlank(Image image)
{
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;
}
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。