C # (at the request of kalyan)
public static void removeBlankPdfPages(string pdfSourceFile, string pdfDestinationFile, bool debug) {
const int blankPdfsize = 20;
var r = new PdfReader(pdfSourceFile);
var raf = new RandomAccessFileOrArray(pdfSourceFile);
var document = new Document(r.GetPageSizeWithRotation(1));
var writer = new PdfCopy(document, new FileStream(pdfDestinationFile, FileMode.Create));
document.Open();
PdfImportedPage page = null;
for (var i=1 ; i <= r.NumberOfPages; i++)
{
byte[] bContent = r.GetPageContent(i, raf);
var bs = new MemoryStream();
bs.Write(bContent, 0, bContent.Length);
Console.WriteLine("page content length of page {0} = {1}", i, bs.Length);
if (bs.Length > blankPdfsize)
{
page = writer.GetImportedPage(r, i);
writer.AddPage(page);
}
bs.Close();
}
document.Close();
writer.Close();
raf.Close();
r.Close();}
source
share