扫描双面打印纸张文档所创建的pdf可能包含空白页面,有时候空白页也可能是有意插入的。 在本文中,您将学习如何使用spire.pdf检测并删除pdf文件中的空白页面。
空白页面通常被定义为不包含任何内容的页面。 spire.pdf提供了一个方法isbank来检测pdf页面是否绝对空白。 但是,一些“空白页”实际上可以包含白色图像,使用isbank方法不会将其视为空白。 要检测这些白色但不是空白页面,我们创建了自定义方法isimageblank。
注意:此ag凯发旗舰厅的解决方案必须应用许可证才能完成,如果你没有授权,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取临时的许可证。
c#
static void main(string[] args)
{
//应用许可证(license)
spire.license.licenseprovider.setlicensefilename("license.elic.xml");
//创建pdfdocument对象
pdfdocument document = new pdfdocument();
//加载pdf文档
document.loadfromfile("sample.pdf");
//遍历每一页
for (int i = document.pages.count - 1; i >= 0; i--)
{
//判读是否为空白页
if (document.pages[i].isblank())
{
//删除空白页
document.pages.removeat(i);
}
else
{
//若非空白页,将页面转换为图片
image image = document.saveasimage(i, pdfimagetype.bitmap);
//判断图片是否为空白
if (isimageblank(image))
{
//若图片为空白,删除对应的pdf页
document.pages.removeat(i);
}
}
}
//保存文档
document.savetofile("output.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;
}
vb.net
private shared sub main(args as string())
'应用许可证(license)
spire.license.licenseprovider.setlicensefilename("license.elic.xml")
'创建pdfdocument对象
dim document as new pdfdocument()
'加载pdf文档
document.loadfromfile("sample.pdf")
'遍历每一页
for i as integer = document.pages.count - 1 to 0 step -1
'判读是否为空白页
if document.pages(i).isblank() then
'删除空白页
document.pages.removeat(i)
else
'若非空白页,将页面转换为图片
dim image as image = document.saveasimage(i, pdfimagetype.bitmap)
'判断图片是否为空白
if isimageblank(image) then
'若图片为空白,删除对应的pdf页
document.pages.removeat(i)
end if
end if
next
'保存文档
document.savetofile("output.pdf", fileformat.pdf)
end sub
'''
'''判断图片是否为空白
'''
'''
'''
public shared function isimageblank(image as image) as boolean
dim bitmap as 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
效果图: