Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Print vise stranica u C#

[es] :: .NET :: Print vise stranica u C#

[ Pregleda: 1477 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

W.A.Mozart

Član broj: 17279
Poruke: 63
77.238.219.*



Profil

icon Print vise stranica u C#09.06.2010. u 08:20 - pre 168 meseci
Pozdrav,

Treba da na prvoj stranici stampam dijagram iz NationalInstruments Measurement Studia dok na drugoj strani treba da bude prikaz DataGridView-a sa numerickim rezultatima. Problem je stampa ove stranice na jednoj, jednu preko druge. Bio bi neizmjerno zahvalan za bilo koji vid pomoci. :) Hvala! Pozdrav

Sta grijesim u kodu?

private void printToolStripMenuItem1_Click(object sender, EventArgs e)
{

nPage = 0;

this.printDocument1.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(this.printDocument1_PrintPage);
if (dialogPrint.ShowDialog() == DialogResult.OK)
{

dialogPrint.Document = printDocument1;
printDocument1.Print();

}

}

private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{

switch (nPage)
{
case 0:

graf1.Draw(new ComponentDrawArgs(e.Graphics, e.MarginBounds));

break;
case 1:
e.HasMorePages = true;
bool more = true;
do
{
gridPrinter = new DataGridViewPrinter(dataGridRezultati, printDocument1, true, true, "OVO JE TEST", new Font("Tahoma", 18, FontStyle.Bold, GraphicsUnit.Point), Color.Black, true);
more = gridPrinter.DrawDataGridView(e.Graphics);
e.HasMorePages = true;
}
while (more != false);
e.HasMorePages = false;

break;
}
nPage++;

}
 
Odgovor na temu

DarkMan
Darko Matesic

Član broj: 20445
Poruke: 572
*.nsinfo.co.rs.

Jabber: DarkMan


Profil

icon Re: Print vise stranica u C#09.06.2010. u 08:36 - pre 168 meseci
http://www.elitesecurity.org/t381716
 
Odgovor na temu

W.A.Mozart

Član broj: 17279
Poruke: 63
77.238.219.*



Profil

icon Re: Print vise stranica u C#09.06.2010. u 08:54 - pre 168 meseci
Mozda trenutno previdjam svaki put, ali zar moj kod ne bi trebao raditi upravo ovo s tim da je kontrola nove stranice postavljena unutar printDocument1_PrintPage?
 
Odgovor na temu

DarkMan
Darko Matesic

Član broj: 20445
Poruke: 572
*.nsinfo.co.rs.

Jabber: DarkMan


Profil

icon Re: Print vise stranica u C#11.06.2010. u 13:14 - pre 168 meseci
Nije ti dobar kod. PrintPage event se izvrsava po jednom za svaku stranicu. Znaci za konkretnu stranicu izvrsis iscrtavanje i na kraju iscrtavanja postavis e.HasMorePages na true ili false u zavisnosti da li ima jos ili ne.

Odmah u prvom case-u si napravio gresku jer nisi nigde podesio e.HasMorePages.
U drugom case-u si napravio petlju koja iscrtava sve podatke na jednu te istu stranicu.

Probaj ovako:

Code (csharp):

private void printToolStripMenuItem1_Click(object sender, EventArgs e)
{
  nPage = 0;
  gridPrinter = new DataGridViewPrinter(dataGridRezultati, printDocument1, true, true, "OVO JE TEST", new Font("Tahoma", 18, FontStyle.Bold, GraphicsUnit.Point), Color.Black, true);
  this.printDocument1.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(this.printDocument1_PrintPage);
  if (dialogPrint.ShowDialog() == DialogResult.OK) {
    dialogPrint.Document = printDocument1;
    printDocument1.Print();
  }
}

private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
  if(nPage == 0) {
    graf1.Draw(new ComponentDrawArgs(e.Graphics, e.MarginBounds));
    e.HasMorePages = true;
  } else {
    e.HasMorePages = gridPrinter.DrawDataGridView(e.Graphics);
  }
  nPage++;
}
 
 
Odgovor na temu

W.A.Mozart

Član broj: 17279
Poruke: 63
77.238.219.*



Profil

icon Re: Print vise stranica u C#11.06.2010. u 13:49 - pre 168 meseci
Ponovo ista stvar, sve na istoj stranici, jedno preko drugog. Koristeni GridViewPrinter je http://www.codeproject.com/KB/...idviewprinter.aspx?msg=2279275. Logicki mi izgleda stvarno sve ok :S
 
Odgovor na temu

[es] :: .NET :: Print vise stranica u C#

[ Pregleda: 1477 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.