Accueil > > > GÉNÉRER ET IMPRIMER DES BILLETS (THÉÂTRE, CINEMA, CONCOURS, ...)
GÉNÉRER ET IMPRIMER DES BILLETS (THÉÂTRE, CINEMA, CONCOURS, ...)
Information sur la source
Description
Salut tout le monde; J'ai un ami qui, pour son école, doit faire environ 500 billets de théâtre avec un numéro unique et les imprimer ensuite. J'ai eu donc l'idée de faire ce programme qui sert à numéroter les billets et de les imprimer ensuite. Il est très simple d'utilisation, voici les étapes à suivre: 1- Vous choisissez l'image du billet en arrière plan 2- Vous sélectionnez la zone d'affichage du nombre 3- Vous spécifiez la police (couleur et taille) 4- Vous spécifiez aussi le nombre de colonnes et l'espacement entre colonnes et lignes 5- Vous pouvez choisir ou non d'afficher les zéros à gauche du nombre
Source
- 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;
}
}
Conclusion
Merci à Shinta de m'avoir donner l'idée de faire ce programme Si vous avez d'autres options à me suggérer, n'hésitez pas à le faire Si vous trouvez des bugs, merci de me prévenir
Finalement, l'executable est dans le zip avec l'extension .exe_
Enjoy !!!
Historique
- 30 novembre 2005 02:17:31 :
- ajout de mots-clés
- 18 septembre 2008 00:43:37 :
- Mise à jour le 17 septembre 2008 :
- Le logiciel accepte maintenant plusieurs zone de numération.
- À chacune des zones peut être attribuer une police spécifique.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
impression : tres urgent [ par creanova2000 ]
bonjour je suis en train de faire une application qui me permettera d'imprimer des etiquette de taille largeur= 125mm et de hauteur= 75mm .j'arrive a
imorimante et impression [ par creanova2000 ]
bonjour je suis en train de faire une application qui me permettera d'imprimer des etiquette de taille largeur= 125mm et de hauteur= 75mm .j'arrive a
Impression PDF via C# [ par zeloostik ]
Salut à tous :)J'ai une colle à vous poser :Je dois créer une appli qui doit permettre d'imprimer un fichier PDF donné en un clic : c'est-à-dire que s
Impression PDF via C# [ par zeloostik ]
Salut à tous,J'ai une colle à vous soumettre :Je dois créer une appli sous C# qui doit pouvoir imprimer un PDF en un clic.Je m'explique : sur le Form
Impression saut de ligne [ par 238723 ]
Bonjour a tousJ'ai plusieurs TextBox dans mon formulaire associé chacun à unLabel j'arrive a tous les imprimer mais j'aimerai les imprimer les uns en
Impression d'un controle [ par MorpionMx ]
Bonjour a tous, J'ai dans un Panel 2 Control persos. Et j'aimerais imprimer ces 2 Control l'un a coté de l'autre, ou alors ce qu'il y a dans le
Impression Images [ par thebigboss ]
Est-ce que quelqu'un sait comment imprimer une photo à une dimension définit en centimètre?En fait, j'ouvre une photo, je l'affiche aux
apercu et impression cSharp .net [ par lolhangman ]
Bonjour, voila je suis super debutant en .net et cSharp et j'ai besoin d'imprimer le contenue d'une page. En fait tous mes resultats sont stoqués
Impression + problème [ par emmanuel9 ]
Bonjour, J'ai deux panel avec sur l'un un camembert et sur l'autre des barres. et en faite je voudrais reussir a imprimer ces deux graphiques, et
Prob avec l'impression [ par youil ]
Bonjour !!!Je cherche à imprimer le contenu d'un textebox mais mon problème est que le textbox à l'écran mesure 100 par 24 et il c
|
Derniers Blogs
COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ?MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ? par junarnoalg
La prochaine session de MyTIC aura lieu à Namur, le 23 mars prochain. Pendant presque une heure, nous parlerons de SharePoint 2010. Voici un aperçu du programme.
Accueil : 17h30 Début de la session : 18h00 - Les nouvelles int...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : API WIKIPéDIARE : API WIKIPéDIA par Femto1218
Cliquez pour lire la suite par Femto1218
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|