C# 添加、删除PDF空白页

PDF格式的文档广泛应用于电子图书、产品说明、公司文告、网络资料、电子邮件等各种领域和场合。我们工作和学习中可能会遇到需要添加文档页来添加相应内容,或者删除文档中多出的空白页等情况,因此,本篇文章将介绍如何在C#中来实现添加、删除PDF空白页。


示例要点

1.添加PDF空白页
1.1 在默认位置添加空白页(文档末)
1.2 在指定位置添加空白页
2.删除空白页


工具使用

这里示例中使用的是免费版的.NET PDF控件 Free Spire.PDF for .NET(添加dll引用时,可在安装路径下的Bin文件夹中获取dll文件)

测试文档截图(文档包含两页内容):


1.添加PDF空白页

1.1 在默认位置,即文档末插入一张空白页

C#

            //创建PDF文档1,并加载测试文档
            PdfDocument doc1 = new PdfDocument();
            doc1.LoadFromFile("sample.pdf");

            //添加一页空白页到文档(默认在文档最后一页添加)
            doc1.Pages.Add();
            //保存并打开文档
            doc1.SaveToFile("result1.pdf");
            System.Diagnostics.Process.Start("result1.pdf");

测试结果:

1.2 在指定位置插入空白页

C#

           //创建文档2,加载测试文档
            PdfDocument doc2 = new PdfDocument();
            doc2.LoadFromFile("sample.pdf");

            //添加一页空白页作为第2页
            doc2.Pages.Insert(1);

            //保存并打开文档
            doc2.SaveToFile("result2.pdf");
            System.Diagnostics.Process.Start("result2.pdf");

测试结果:


2. 删除PDF空白页

测试文档:

这里的测试文档中,包含了两页空白页,一页空白页是没有任何内容的;另一页空白页是包含了空白图片的页面,看似没有内容,但是这样的页面实际上也是不需要的。
C#

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

测试结果:

附:VB.NET代码(删除PDF空白页)

Imports Spire.Pdf
Imports System.Drawing
Imports Spire.Pdf.Graphics

Namespace DeleteBlankPage_PDF

    Class Program

        Private Shared Sub Main(ByVal args As String())
            Spire.License.LicenseProvider.SetLicenseFileName("license.elic.xml")
            Dim document As PdfDocument = New PdfDocument()
            document.LoadFromFile("Test.pdf")
            For i As Integer = document.Pages.Count - 1 To 0
                If document.Pages(i).IsBlank() Then
                    document.Pages.RemoveAt(i)
                Else
                    Dim image As Image = document.SaveAsImage(i, PdfImageType.Bitmap)
                    If IsImageBlank(image) Then
                        document.Pages.RemoveAt(i)
                    End If
                End If
            Next

            document.SaveToFile("RemoveBlankPage.pdf", FileFormat.PDF)
            System.Diagnostics.Process.Start("RemoveBlankPage.pdf")
        End Sub

        Public Shared Function IsImageBlank(ByVal image As Image) As Boolean
            Dim bitmap As Bitmap = New Bitmap(image)
            For i As Integer = 0 To bitmap.Width - 1
                For j As Integer = 0 To bitmap.Height - 1
                    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
                Next
            Next

            Return True
        End Function
    End Class
End Namespace

以上全部内容为本次关于“C# 添加、删除PDF空白页”的全部内容,欢迎转载(转载请注明出处)
感谢阅读!

原文地址:http://blog.51cto.com/eiceblue/2104293

时间: 2024-10-10 16:21:30

C# 添加、删除PDF空白页的相关文章

phpcms v9 后台添加修改页面空白页问题解决方法

phpcms v9 添加修改页面空白页的解决方法 找一个正常运行的phpcms 将caches\caches_model\caches_data 目录下的 content_form.class.php content_input.class.php content_output.class.php content_update.class.php 上传覆盖. 问题引发原因为更新缓存,缓存更新后记得重新覆盖. 这个问题真神奇,问题解决请留言点赞~~

Word2007中怎样删除空白页 PDF空白页如何删除

写论文或者是写简历的同学应该会发现,在编辑论文是会遇到页面下多出空白页的情况,这种情况下的空白页不仅没有用处,而且会影响整个页面的排版,那么我们怎么将这些空白页删除呢? 1. 首先,建立一张含有内容的文档,小编这份文档有7页,但最后一页是空白的: 2. 要将此页删除很简单,先将鼠标定位到该空白页的第一行,接着点击工具栏"开始"对应的"段落"然后在弹出的段落对话框,在选项"缩进和间距"里找到"行距",如下图,目前行距是默认的&q

xcode6.x添加Empty Application空白页模板

引言 最新xcode6.x并没有之前的Empty Application模板, 这使得习惯用纯代码的我来说很不舒服, 今天我就教大家一个简单的在自己xcode中添加Empty Application模板的方法 1.找到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/iOS/Application,的路

PDF中的空白页怎么删除,怎么做比较简单呢?

怎么删除PDF中的空白页呢?我们从网上下载地PDF文件,有一部分文件会出现一些空白页面,这些空白页面会严重影响我们观看文件,这个时候我们就需要找到可以删除PDF空白页的软件来删除PDF空白页面,下面我们就一起来看吧.使用软件:PDF编辑器https://www.xunjiepdf.com/editor具体操作方法如下:1:首先将迅捷PDF编辑器安装到电脑中,打开PDF编辑器将PDF文件添加到软件中.2:在软件的顶部找到文档,点击文档在下面会出现一个下拉框,在下拉框中可以找到删除页面,将鼠标移动到

PDF怎么删除空白页,PDF删除空白页的方法

PDF怎么删除空白页呢?现在我们从网上下载的PDF文件会有很多的空白页面,想要直接在PDF文件中将这些空白页面删除掉就需要使用到PDF编辑器来完成,下面小编就为大家介绍一下PDF删除空白页的操作方法. 操作软件:迅捷PDF编辑器 具体操作方法如下: 1:首先将迅捷PDF编辑器安装到自己的电脑中,双击打开PDF编辑器,将PDF文件添加到软件中. 2:在软件的顶部找到文档,点击文档在下面会出现一个下拉框,在下拉框中可以找到删除页面,将鼠标移动到删除页面的位置,在右侧就可以找到删除空白页面. 3:点击

word双栏排版,最后一页由于分节符造成最后一页是空白页,删除分节符双栏就变成了单栏

遇到这个问题时,我们把心思都花在了如何“删除”这个空白页. 但是最有效的办法不是“删除”,而是(以word2007为例): Word 2007中文版: 鼠标放在最后一页,点击页面布局①,选择页面布局右下角的图标②. 弹出“页面设置”对话框,找到“板式”,将节点起始位置由“新建页”,选择为“持续本页”. Word 英文版: We should go to the Layout tab of 'Page Setup' and change the section start type from "N

PDF文档怎么删除空白页?

PDF文档怎么删除空白页呢?PDF文档删除空白页面就需要使用到专业的PDF编辑器来进行操作,很多人不知道PDF编辑器怎么操作PDF删除页面,下面小编就为大家分享一下PDF编辑器进行PDF删除空白页面的方法. 使用工具:迅捷PDF编辑器 操作步骤: 1:首先将迅捷PDF编辑器安装到自己的电脑中,打开PDF编辑器找到打开更多文件,将需要删除空白页面的PDF文件添加到软件中. 2:在软件的顶部找到文档,点击文档在下面可以找到删除页面,将鼠标移动到删除页面的位置,在右侧会看到删除空白页面. 3:点击删除

怎么把PDF文件空白页删除

怎么把PDF文件空白页面删除了,想要删除PDF文件空白页面就需要使用专业的PDF编辑器来进行操作,小编推荐使用迅捷PDF编辑器,下面小编就使用迅捷PDF编辑器为大家操作一下PDF文件删除空白页的操作方法. 操作软件:迅捷PDF编辑器 具体操作方法如下: 1:首先将迅捷PDF编辑器安装到电脑中,打开PDF编辑器将PDF文件添加到软件中. 2:在软件的顶部找到文档,点击文档在下面会出现一个下拉框,在下拉框中可以找到删除页面,将鼠标移动到删除页面的位置,在右侧可以找到删除空白页. 3:点击删除空白页,

如何在线批量删除PDF文件内的空白页

如何在线批量删除PDF文件内的空白页,办公中经常会接触到几千页的PDF文件,然而这些文件中存在着空白页的漏洞,严重影响到了PDF的整体性,那如何将这些空白页批量删除掉呢,请看下面操作.1.打开电脑,进入百度首页,搜索迅捷PDF在线转换器. 2.进入转换器界面后,在导航栏上点击文档处理,在下拉框中找到PDF删除页.3.点进PDF删除页后,点击选择文件加入待删除页的PDF文件,也可以直接拖动添加.4.添加完需要删除页的PDF文件,设置需要删除的页码后,点击开始删除按钮.5.点击删除按钮后,将自动删除