Try this
This shouldn't be in your PrintPage method, but rather on a button click.
Image imgToPrint;
protected void btnPrint_Click(object sender, EventArgs e){
foreach (var ii in objListViewItemsData)
{
System.Drawing.Image img System.Drawing.Image.FromFile(ii.GridViewColumnName_ImageSource.ToString());
imgToPrint = img;
PrintDocument pd = new PrintDocument();
pd.OriginAtMargins = true;
pd.PrintPage += pd_PrintPage;
pd.DefaultPageSettings.Landscape = true;
pd.Print();
}
}
void pd_PrintPage(object sender, PrintPageEventArgs e)
{
Point loc = new Point(100, 100);
e.Graphics.DrawImage(imgToPrint , loc);
}
Just set your own dimensions and it will print each image as a new page(instance).