Problemi di stampa

di il
6 risposte

Problemi di stampa

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.

6 Risposte

  • Re: Problemi di stampa

    Ripeti i problemi e le domande magari scrivendo meglio perché non si capisce
  • Re: Problemi di stampa

    In pratica il codice mi stampa un numero infinito di pagine.
    si potrebbe inserire il numero delle pagine nella visualizzazione del Preview delle medesime?
  • Re: Problemi di stampa

    Ma che senso ha l'ultima for?
  • Re: Problemi di stampa

    L'ultima for dovrebbe stamparmi le pagine oltre la prima. Ad ogni passaggio della form mi dovrebbe stampare una ulteriore pagina. Ma in realta' me ne stamperebbe non 2 o tre ma infinite...
  • Re: Problemi di stampa

    Quella for non serve a stampare e non ha alcun senso.

    Quando sei all'interno di quell'evento stai stampando una pagina, all'uscita con HasMorePage a true o false indichi se esiste una prossima pagina da stampare. Se HasMorePage è sempre a true, allora stamperà infinite pagine.

    Studia la documentazione prima di scrivere codice a caso (ma forse te l'ho già detto)
  • Re: Problemi di stampa

    Si in effetti e vero, fin da principio, non ci avrei speso un soldo sul mio codice, sto' ovviando usanto i componenti di stampa.
    Grazie
Devi accedere o registrarti per scrivere nel forum
6 risposte