Ho il seguente codice che mi fà apparire il preview dialog della pagina ( image ) che voglio stampare :
public void StampaImmaginePicture()
{
// Assumes the default printer.
System.Drawing.Printing.PrintDocument pd = new System.Drawing.Printing.PrintDocument();
pd.PrintPage += this.pd_PrintPagePicture;
PrintPreviewDialog ppd = new PrintPreviewDialog();
ppd.Document = pd;
ppd.WindowState = FormWindowState.Maximized;
ppd.ShowDialog();
}
e poi il codice che manda in stampa la pagina o le pagine :
private void pd_PrintPagePicture(object sender, System.Drawing.Printing.PrintPageEventArgs ev)
{
if (textBox1.Text == "")
{
return;
}
int K = Convert.ToInt32(textBox1.Text);
MessageBox.Show(Convert.ToString(K));
if (K == 1)
{
ev.HasMorePages = false;
ev.Graphics.DrawImage(pictureBox1.Image, 10, 10, pictureBox1.Width, pictureBox1.Height);
}
else
{
ev.HasMorePages = false;
ev.Graphics.DrawImage(pictureBox1.Image, 10, 10, pictureBox1.Width, pictureBox1.Height);
for (int i = 1; i <= K; i++) // K + 1
{
ev.HasMorePages = true;
if ( i == K )
{
ev.HasMorePages = false;
return;
}
}
}
}
Mi succedono 2 cose :
1) la stampa a parte di 1 pagina non fà che caricarmi pagine all'infinito....
2) la stampa mi parte quando chiudo il preview
Vorrei o mettere il numero di pagine dal preview o stamparne solo quante ne voglio..
Come posso fare.
Grazie.