- le code est très long, j'ai donc choisi l'extrait suivant. le reste est dans le zip
-
- using System;
- using System.Windows.Forms;
- using System.Drawing.Printing;
- using System.Drawing;
- using System.Drawing.Drawing2D;
-
- /*...*/
-
- private void DrawPage(int actualPage, Graphics g, Rectangle container)
- {
- //rectangle qui définit la zone d'affichage du ticket
- Rectangle ticketRect = new Rectangle(container.X, container.Y, bmpWidth, bmpHeight);
- //rectangle qui définit la zone d'affichage du nombre
- Rectangle numberRect = displayNumberRect;
- numberRect.X += container.X; numberRect.Y += container.Y;
- //nombre du premier ticket de la page x
- int number = actualPage * nberOfLines * nberOfColumns + this.beginNumber;
-
- //on fait les colonnes, ligne par ligne
- //observez la disposition des boucles
- for(int i=0; i<this.nberOfLines; i++)
- {
- for(int j=0; j<this.nberOfColumns; j++)
- {
- //si on a atteint le dernier billet, on arrête
- if(number == this.numberOfTickets + this.beginNumber) break;
- //on dessine l'image du billet
- g.DrawImage(bmp, ticketRect);
- //string qui contient le chiffre
- string s = string.Format("{0}", number);
- //on ajoute les zéros à gauche si zeroLeft == true
- if(this.zeroLeft)
- {
- while(s.Length<this.nberZeroLeft+1)
- {
- s = s.Insert(0, "0");
- }
- }
- //on dessine le nombre
- g.DrawString(s, font, new SolidBrush(fontColor), numberRect, format);
- //g.DrawRectangle(new Pen(Color.Black), numberRect);
- //--------------------------------------------------
- //on place nos rectangles pour la deuxieme colonne
- ticketRect.X+= ticketRect.Width + this.spaceColumns;
- numberRect.X = ticketRect.X + displayNumberRect.X;
- number++;
- }
- //on place nos rectangles pour la ligne suivante
- ticketRect.X = container.X;
- numberRect.X = ticketRect.X + displayNumberRect.X;
- ticketRect.Y+= ticketRect.Height + this.spaceRows;
- numberRect.Y = ticketRect.Y + displayNumberRect.Y;
- }
- }
le code est très long, j'ai donc choisi l'extrait suivant. le reste est dans le zip
using System;
using System.Windows.Forms;
using System.Drawing.Printing;
using System.Drawing;
using System.Drawing.Drawing2D;
/*...*/
private void DrawPage(int actualPage, Graphics g, Rectangle container)
{
//rectangle qui définit la zone d'affichage du ticket
Rectangle ticketRect = new Rectangle(container.X, container.Y, bmpWidth, bmpHeight);
//rectangle qui définit la zone d'affichage du nombre
Rectangle numberRect = displayNumberRect;
numberRect.X += container.X; numberRect.Y += container.Y;
//nombre du premier ticket de la page x
int number = actualPage * nberOfLines * nberOfColumns + this.beginNumber;
//on fait les colonnes, ligne par ligne
//observez la disposition des boucles
for(int i=0; i<this.nberOfLines; i++)
{
for(int j=0; j<this.nberOfColumns; j++)
{
//si on a atteint le dernier billet, on arrête
if(number == this.numberOfTickets + this.beginNumber) break;
//on dessine l'image du billet
g.DrawImage(bmp, ticketRect);
//string qui contient le chiffre
string s = string.Format("{0}", number);
//on ajoute les zéros à gauche si zeroLeft == true
if(this.zeroLeft)
{
while(s.Length<this.nberZeroLeft+1)
{
s = s.Insert(0, "0");
}
}
//on dessine le nombre
g.DrawString(s, font, new SolidBrush(fontColor), numberRect, format);
//g.DrawRectangle(new Pen(Color.Black), numberRect);
//--------------------------------------------------
//on place nos rectangles pour la deuxieme colonne
ticketRect.X+= ticketRect.Width + this.spaceColumns;
numberRect.X = ticketRect.X + displayNumberRect.X;
number++;
}
//on place nos rectangles pour la ligne suivante
ticketRect.X = container.X;
numberRect.X = ticketRect.X + displayNumberRect.X;
ticketRect.Y+= ticketRect.Height + this.spaceRows;
numberRect.Y = ticketRect.Y + displayNumberRect.Y;
}
}