Neviem ako nastaviť v printPreviewDialogu viac ako náhľad jedného dokumentu .
Lebo náhľad jedného documentu jetak
..
printPreviewDialog.Document = this.document;
..
Ale ako nastaviť aby som mal viac dokumentov ??
Dík
Fórum › .NET
PrintPreviewDialog
Souhlasi, ze this.document je ?:
PrintDocument document;
..
printPreviewDialog.Document = this.document;
Pokud ano, pak si bud vytvor dalsi objet typu PrintDocument s vlastnim "renderingem" a muzes je stridat pro dany preview dialog.if(seMiChce)
{
printPreviewDialog.Document = document1;
}
else
{
printPreviewDialog.Document = document2;
}
Ale pokud chces vytisknout vice stranek s jednim dokumentem ? Pak je treba vzdy nastavit
void printDocument1_PrintPage(
object sender, PrintPageEventArgs e)
{
//TODO: nejak si ohandlovat cisla stranek
e.HasMorePages = true;
// tim se vyvola PrintPage znovu
}
Napriklad zhruba nasledovne:
int pageNr;
int pocetStranek = 10;
void printDocument1_PrintPage(
object sender, PrintPageEventArgs e)
{
pageNr++;
vytiskniStranku(pageNr, e.Graphics);
if (pageNr < pocetStranek)
{
e.HasMorePages = true;
}
}
void button1_Click(object sender, EventArgs e)
{
pageNr = 0;
printPreviewDialog1.ShowDialog(this);
}
void vytiskniStranku(int cislo, Graphics g)
{
g.DrawString(
cislo.ToString(),
new Font(Font.FontFamily, 60f, FontStyle.Regular),
new SolidBrush(ForeColor),
new PointF(10f, 10f));
}
ja som myslel že máš dve strany a to : document 1 a documet 2
A chcem aby mi v printPreviewDialog ukázalo náhľad obydvoch stránok (document1 , documet2) naraz a to documetn 1 by bol na prvej strane a document 2 na druhej strane
Neviete ako to dosiahnuť ???
rudolf_franek : dík za to ale ja mám dve strany kde má nastavené súradnice a ked to dám do jedného documentu a dám ten document do printPreviewDialogu tak my to nakreslí cez seba !!
A nechce sa mi všade meniť súradnice lebo je tam toho veľmi veľa ale ak nebudem mať inú možnosť tak to urobím po tvojom .
už to mám upravil som to tvoje a vyzera to tak
int pageNr;
int pocetstran = 2;
private void button1_Click(object sender, EventArgs e)
{
pageNr = 0;
printPreviewDialog1.ShowDialog(this);
}
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
pageNr++;
if (pageNr <= pocetstran)
{
if (pageNr == 1)
{
vytiskniStranku1(e.Graphics);
e.HasMorePages = true;
}
else if (pageNr == 2)
{
vytiskniStranku2(e.Graphics);
}
}
}
private void vytiskniStranku2(Graphics g)
{
Pen p = new Pen(Color.Black, 5);
g.DrawRectangle(p, 50, 100, 50, 100);
}
private void vytiskniStranku1(Graphics g)
{
Pen p = new Pen(Color.Black, 5);
g.DrawRectangle(p,50,100,30,40);
}
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 5 hostů
Moderátoři diskuze