tengo un programa que se encarga de imprimir cada imagen n veces.
El problema es que si le digo que imprima 3 veces, sólo imprime 1 y si pongo 2 imágenes, sólo imprime la primera.
(tiene que ir una imagen por hoja)
Código:
private void btnImprimir_Click(object sender, EventArgs e) { try { printDocument1.PrinterSettings = printDialog1.PrinterSettings; printDocument1.PrintPage += new PrintPageEventHandler(print_my_page); printDocument1.BeginPrint += new PrintEventHandler(begin_print); printDocument1.DefaultPageSettings.Landscape = true; printDocument1.Print(); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString() + " - " + ex.StackTrace.ToString()); } }
Código:
private void print_my_page(object sender, PrintPageEventArgs ev) { ev.Graphics.PageUnit = GraphicsUnit.Millimeter; int ncopias; int totcopias; DataGridViewRow fila; for (int p = 0; p < dtgv.Rows.Count; p++) { fila = dtgv.Rows[p]; if (fila.Cells[0].Value.ToString() == "True") { ncopias = 0; totcopias = Convert.ToInt32(fila.Cells[2].Value.ToString()); while (ncopias < totcopias) { DataGridViewRow row = dtgv.Rows[p]; string strFoto = row.Cells[1].Value.ToString(); picPlantilla.Image = new Bitmap(strFoto); ev.Graphics.DrawImage(picPlantilla.Image, 0, 8, 145, 95); ev.HasMorePages = true; ncopias++; } } } ev.HasMorePages = false; }