彩票走势图

logo E-iceblue中文文档
文档彩票走势图>>E-iceblue中文文档>>查找并删除 PDF 中的空白页

查找并删除 PDF 中的空白页


Spire.PDF for .NET 是一款专门对 Word 文档进行操作的 .NET 类库。致力于在于帮助开发人员轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档,而无需安装 Microsoft Word。

行号用于在每行文本旁边显示 Word 自动计算的行数。当我们需要参考合同或法律文件等文档中的特定行时,它非常有用。word中的行号功能允许我们设置起始值、编号间隔、与文本的距离以及行号的编号方式。使用 Spire.Doc,我们可以实现上述所有功能。本文将介绍如何将 HTML 转换为 PDF。

Spire.PDF for.NET 最新下载

欢迎加入spire技术交流群:767755948

PDF 文件中的空白页并不少见,因为它们可能是作者有意留下的,也可能是在处理文档时不小心添加的。在阅读或打印文档时,这些空白页可能会很烦人,因此很有必要删除它们。在本文中,您将学习如何使用 Spire.PDF for .NET 以编程方式查找并删除 PDF 文档中的空白页。

安装 Spire.PDF for .NET

首先,您需要将 Spire.PDF for.NET 软件包中包含的 DLL 文件作为引用添加到您的 .NET 项目中。这些 DLL 文件既可以从这个链接下载,也可以通过 NuGet 安装。

PM> Install-Package Spire.PDF

查找并删除 PDF 文档中的空白页

Spire.PDF for .NET提供了一个PdfPageBase.IsBlank()方法来检测PDF页面是否绝对空白。但有些看起来空白的页面实际上包含白色图像,使用 PdfPageBase.IsBlank() 方法无法将这些页面视为空白页面。因此,有必要创建一个自定义方法IsImageBlank()与PdfPageBase.IsBlank()方法结合使用,以检测这些白色但非空白的页面。

注:该解决方案将把 PDF 页面转换为图像,并检测图像是否为空白。在转换后的图像中,有必要应用许可证来删除评估信息。否则,此方法将无法正常工作。如果您没有许可证,请联系 sales@e-iceblue.com 获取临时许可证,用于评估目的。

具体步骤如下:

  • 创建一个 PdfDocument 实例。
  • 使用 PdfDocument.LoadFromFile() 方法加载一个 PDF 文档。
  • 使用PdfPageBase.IsBlank()方法循环浏览PDF文档中的页面,检测页面是否空白。
  • 使用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)
        {
            //Apply license by license key
            Spire.License.LicenseProvider.SetLicenseKey("your license key");

            //Create a PdfDocument instance
            PdfDocument document = new PdfDocument();

            //Load a sample PDF document
            document.LoadFromFile("input.pdf");

            //Loop through all pages in the PDF
            for (int i = document.Pages.Count - 1; i >= 0; i--)
            {
                //Detect if a page is blank
                if (document.Pages[i].IsBlank())
                {
                    //Remove the absolutely blank page
                    document.Pages.RemoveAt(i);
                }
                else
                {
                    //Save PDF page as image
                    Image image = document.SaveAsImage(i, PdfImageType.Bitmap);

                    //Detect if the converted image is blank
                    if (IsImageBlank(image))
                    {
                        //Remove the page
                        document.Pages.RemoveAt(i);
                    }
                }
            }

            //Save the result document
            document.SaveToFile("RemoveBlankPage.pdf", FileFormat.PDF);
        }

        //Detect if an image is blank
        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;
        }
    }
}

[VB.NET]

Imports Spire.Pdf
Imports Spire.Pdf.Graphics

Namespace DeleteBlankPage
    Class Program
        Private Shared Sub Main(ByVal args() As String)
            'Apply license by license key
            Spire.License.LicenseProvider.SetLicenseKey("your license key")

            'Create a PdfDocument instance
            Dim document As PdfDocument = New PdfDocument

            'Load a sample PDF document
            document.LoadFromFile("input.pdf")

            'Loop through all pages in the PDF
            Dim i As Integer = (document.Pages.Count - 1)
            Do While (i >= 0)

                'Detect if a page is blank
                If document.Pages(i).IsBlank Then

                    'Remove the absolutely blank page
                    document.Pages.RemoveAt(i)
                Else

                    'Save PDF page as image
                    Dim image As Image = document.SaveAsImage(i, PdfImageType.Bitmap)

                    'Detect if the converted image is blank
                    If Program.IsImageBlank(image) Then

                        'Remove the page
                        document.Pages.RemoveAt(i)
                    End If

                End If

                i = (i - 1)
            Loop

            'Save the result document
            document.SaveToFile("RemoveBlankPage.pdf", FileFormat.PDF)
        End Sub

        'Detect if an image is blank
        Public Shared Function IsImageBlank(ByVal image As Image) As Boolean
            Dim bitmap As Bitmap = New Bitmap(image)
            Dim i As Integer = 0
            Do While (i < bitmap.Width)
                Dim j As Integer = 0
                Do While (j < bitmap.Height)
                    Dim pixel As Color = bitmap.GetPixel(i, j)
                    If ((pixel.R < 240) _
                                OrElse ((pixel.G < 240) _
                                OrElse (pixel.B < 240))) Then
                        Return False
                    End If

                    j = (j + 1)
                Loop

                i = (i + 1)
            Loop

            Return True
        End Function
    End Class
End Namespace

申请临时许可证
若想从生成的文档中删除评估信息,或解除功能限制,申请 30 天试用许可证。

扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP