Imprimer le contenu d'un textbox avec VBNET!!!!! [Résolu]

neo022 17 Messages postés vendredi 27 février 2004Date d'inscription 16 avril 2006 Dernière intervention - 12 févr. 2006 à 10:40 - Dernière réponse : neo022 17 Messages postés vendredi 27 février 2004Date d'inscription 16 avril 2006 Dernière intervention
- 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!!!

J'attend vos réponse avec impatience! :P

Vincent ;)
Afficher la suite 

2 réponses

Meilleure réponse
neo022 17 Messages postés vendredi 27 février 2004Date d'inscription 16 avril 2006 Dernière intervention - 12 févr. 2006 à 16:25
3
Merci
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


lpp = ev.MarginBounds.Height / printfont.GetHeight(ev.Graphics)



'Ici on indique que tant que (While) count est inferieur au nombre de ligne par page il continue



'on indique egalement EOF(1) = false veut dire tant qu'on est pas a la fin du fichier noter entre parenthèse le numéro du fichier



'EOF est en faite une variable qui renvoi false si on est pas a la fin du fichier et true si on est a la fin :P



While (count < lpp
And EOF(1) =
False)



'Ici on calcule la position de la marge haute d'impression


'noté que count au début 0 donc (count * printfont.GetHeight(ev.Graphics) 0 donc le premier chiffre indique votre marge haute



'c'est a dire la variable que j'ai enlever tout a l'heure


yPos = 12 + (count * printfont.GetHeight(ev.Graphics))



'ev est l'evenement graphique


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

@++

(document original sans modification de ma part: http://plasserre.developpez.com/v4-11.htm)

Vincent ;)

Merci neo022 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

cs_et1 250 Messages postés vendredi 14 janvier 2005Date d'inscription 27 janvier 2011 Dernière intervention - 12 févr. 2006 à 12:29
0
Merci
Bonjour,

http://plasserre.developpez.com/v4-11.htm

Allez visiter mon site sur la programmation :
www.et1-vb.net

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.