Hi,
How can I remove the blank pages from a PDF file?
Is it posible?
Thanks.
Best regards
static void RemoveBlankPage(string fileName, string newFile)
{
using (PdfDocument originalDoc = new PdfDocument(fileName))
{
for (int i = 0; i <originalDoc.Pages.Count; i++)
{
PdfPageBase originalPage = originalDoc.Pages[i];
string text = originalPage.ExtractText();
Image[] imgs = originalPage.ExtractImages();
if ((text == null || text.Trim().Length == 0)
&& (imgs == null || imgs.Length == 0))
{
originalDoc.Pages.Remove(originalPage);
}
}
originalDoc.SaveToFile(newFile);
}
}
static void RemoveBlankPage(string fileName, string newFile)
{
using (PdfDocument originalDoc = new PdfDocument(fileName))
{
for (int i = 0; i <originalDoc.Pages.Count; i++)
{
PdfPageBase originalPage = originalDoc.Pages[i];
if (originalPage.IsBlank())
{ originalDoc.Pages.Remove(originalPage); i--; }
}
originalDoc.SaveToFile(newFile);
}
}
List<string> Url = new List<string>();
Url.Add("https://rarunkumar454.github.io/sample_grid/");
Url.Add("https://rarunkumar454.github.io/sample_grid/");
string date = DateTime.Now.ToString("MM_dd_yyyy") + "Time_" + DateTime.Now.ToString("HHmmss");
List<MemoryStream> MemStream = new List<MemoryStream>();
foreach (var item in Url)
{
MemoryStream ms1 = new MemoryStream();
HtmlConverter.Convert(item, ms1, true, 100 * 1000, new SizeF(900, 700), new PdfMargins(60, 60));
MemStream.Add(ms1);
}
string outputFile = $"C:/Users/Desktop/Sample_({date}).pdf";
PdfDocumentBase doc = PdfDocument.MergeFiles(MemStream.ToArray());
doc.Save(outputFile, FileFormat.PDF);
List<string> Url = new List<string>();
Url.Add("https://rarunkumar454.github.io/sample_grid/");
Url.Add("https://rarunkumar454.github.io/sample_grid/");
string date = DateTime.Now.ToString("MM_dd_yyyy") + "Time_" + DateTime.Now.ToString("HHmmss");
List<MemoryStream> MemStream = new List<MemoryStream>();
foreach (var item in Url)
{
MemoryStream ms1 = new MemoryStream();
HtmlConverter.Convert(item, ms1, true, 100 * 1000, new SizeF(900, 700), new PdfMargins(60, 60));
MemStream.Add(ms1);
}
PdfDocument doc1 = new PdfDocument(MemStream[0]);
PdfDocument doc2 = new PdfDocument(MemStream[1]);
//Don't use merge method, but use DrawTemplate method to draw the content on PDF 1.
doc1.Pages[0].Canvas.DrawTemplate(doc2.Pages[0].CreateTemplate(), new PointF(0, 300));
doc1.SaveToFile("18790.pdf");
List<MemoryStream> mergedMemorys = new List<MemoryStream>();
for (int i = 0; i < MemStream.Count; i = i + 2)
{
PdfDocument doc1 = new PdfDocument(MemStream[i]);
PdfDocument doc2 = new PdfDocument(MemStream[i + 1]);
doc1.Pages[0].Canvas.DrawTemplate(doc2.Pages[0].CreateTemplate(), new PointF(0, 300));
MemoryStream result = new MemoryStream();
doc1.SaveToStream(result);
mergedMemorys.Add(result);
}
string outputFile = "result.pdf";
PdfDocumentBase doc = PdfDocument.MergeFiles(mergedMemorys.ToArray());
doc.Save(outputFile, FileFormat.PDF);