neo022
Messages postés17Date d'inscriptionvendredi 27 février 2004StatutMembreDernière intervention16 avril 2006
-
12 févr. 2006 à 10:40
neo022
Messages postés17Date d'inscriptionvendredi 27 février 2004StatutMembreDernière intervention16 avril 2006
-
12 févr. 2006 à 16:25
Bonjour voilà j'écris car après avoir lu pas mal de sujet comme le miens sur le site je me suis rendu compte que aucun faisait référence au VB net pour les impressions or moi je programme sur VS studio net 2003 donc VB net 2003.
Si vous avez le code donc pour imprimer d'une textbox c assez urgent et svp si vous n'avez pas le code ce n'est pas la peine de donner un lien qui renvoi a un sujet concernant uniquement le VB 6.0. Aussi je vous demanderais de détailler un petit peu le code car j'apprend tout seul le VB et c un peu dur quelque fois de savoir a quoi sert tel ou tel ligne de commande d'avance Merci!!!
neo022
Messages postés17Date d'inscriptionvendredi 27 février 2004StatutMembreDernière intervention16 avril 2006 12 févr. 2006 à 16:25
BOn bah merci et1 j'avais déja vu cette source mais malheureusement j'avais pas pris le temps de la comprendre laors voila j'ai rajouter des commentaires et fait des corrections car ca marchait pas sinon (peut être cela marchait sur le 2005 mais pas sur le 2003 :P)
Donc voici comment imprimer a partir d'un fichier car lorsqu'il y a plusieurs pages c'est la solution la plus simple lolet c'est déjà assez bien compliquer comme ca!
Ne pas oublier ceci en début de code
Imports System.Drawing.Printing
Ensuite voici le code complet
'***Definition des variables
Dim lpp
As
Single = 0
'Nombre de ligne par page
Dim yPos
As
Single = 0
'Marge en haut (la ou va commencer l'impression
Dim count
As
Integer = 0
'Compter le nombre de lignes écrites
'VOici les premiers élément que j'ai enlever car les marges me convenait pas cela dit vous pouvez les ré intégrer
' Dim leftmargin As Single = ev.MarginBounds.Left
' Dim topmargin As Single = ev.MarginBounds.Top
Dim line
As
String
'va contenir l'information de la ligne du texte
Dim pd
As PrintDocument =
New PrintDocument
'Ici on defini une variable qui va nous servir a créée notre classe
Dim printfont
As Font
'Dans la variable printfont contiendra les informations sur la police de caractère utiliser pour l'impression
'Fin de definition des variables
'Déclaration a écrire vous meme
'Class de pd (attention ne pas oublier de lier pd a me.pd_printpage)
Private
Sub Button1_Click(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles Button1.Click
'try est très utile si ovus savez qu'il est possible qu'une erreur survienne due a un élément exterieur a votre programme
'Imaginer le fichier n'hexiste pas ou bien il est vide enfin bref si c'est le cas il va a Catch ex as Exception
Try
'Ici on ouvre le fichier a imprimer
' Description de fileopen(numéro d'identification,chemin du fichier,Comment l'ouvrir*)
' *Comment l'ouvrir Input = juste lire
' Output = Effacer le contenu pour réécrire avec print
' Append = Ajouter a la fin du fichier avec print
' Random = je ne sais pas trop je m'en sert jamais
FileOpen(1, "C:\print.txt", OpenMode.Input)
'Ici nous capturons la première ligne du fichier (change de ligne des que l'occurence lineinput revient)
line = LineInput(1)
printfont =
New Font("Lucida console", 10)
'Ici on défini la police de caractère donc attention pour le nom a ne pas faire de faute
'vous pouvez rajouter des effets avec : New Font("Lucida console", 10 ,FontStyle.Bold (texte en gras))
AddHandler pd.PrintPage,
AddressOf
Me.pd_Printpage
'Attention ne surtout pas oublier la ligne on li le printpage de pd donc pd.printpage a la class me.pd_printpage c'est a dire
'lorsque pd.print est enclenché cela enclenche pd.printpage = me.pd_Printpage
pd.Print()
Catch ex
As Exception
'En cas d'erreur la variable ex va contenir toute les info concernant l'erreur
'pour avoir un message des plus claire pour l'utilisateur afin qu'il puisse se faire aider
'il faut lui indiquer le nom de l'erreur donc ex.message ici on le fait via un msgbox
MsgBox("Une erreur est surevenue:" & ControlChars.CrLf & ex.Message, MsgBoxStyle.OKOnly, "Attention")
End
Try
End
Sub
Private
Sub pd_Printpage(
ByVal sender
As
Object,
ByVal ev
As System.Drawing.Printing.PrintPageEventArgs)
'Calcul du nombre de ligne par page
'Hauteur de la page/Hauteur de la police de caractère
ev.Graphics.DrawString(line, printfont, Brushes.Black, 15, yPos)
'Donc ici pour imprimer il faut impérativement avoir un e.graphics. qlqchse
'ensuite ici comme c'est du texte on met .DrawString(Ligne récupéré , la police de caractère, la couleur du pinceau, position en X je pense en mm,position Y en mm aussi)
count = count + 1
'Ici on incrément count de 1 car il y a une ligne en plus d'imprimer
If count < lpp
Then
'tant que le nb de ligne est inferieur au nb de ligne maxi
line = LineInput(1)
'on re fait une aquisition dans le fichier a la ligne suivante
End
If
End
While
'S'il y a encore des lignes, on réimprime une page
If (EOF(1) =
False)
Then
' Donc si nous ne somme pas a la fin du fichier EOF renvoi False
ev.HasMorePages =
True
'on le dit a l'imprimante donc on attribu a ev.hasmorepages = true (false par default)
Else
ev.HasMorePages =
False
'sinon on lui attribut false
FileClose(1)
'Important ne pas oublier de fermer le fichier après acquisition de tte les informations sinon il sera impossible de l'ouvrir t'en que
'l'application n'est pas fermer
End
If
End
Sub
End
Class
Donc je tiens a vous dire que je ne suis pas a l'abris d'une erreur d'analyse car en effet je l'ai déjà dit je suis que novice.
Cela dit je suis sur que ça marche c'est déjà pas mal! :P
Bon bah voila j'éspère que cela vous aidera il y a plus de commentaire que de code c'est exprès pour les débutants afin que cette source leurs soit plus ou moins abordable!
En tout cas merci pour ton aide et1