Imprimer un textbox multiline

lucky07ir Messages postés 133 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 18 avril 2004 - 26 oct. 2002 à 11:10
cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 - 27 oct. 2002 à 12:30
salut a tous je voulais savoir comment imprimer un textbox qui est en multiline = true merci d'avance :)

3 réponses

cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
26 oct. 2002 à 11:48
Tout bêtement Printer.Print Text1.Text
0
lucky07ir Messages postés 133 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 18 avril 2004
26 oct. 2002 à 13:17
ben nan printer.print text1 imprime le contenu du textbox sur une seule ligne il ne fait pas de retour a la ligne
0
cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
27 oct. 2002 à 12:30
Il me semble qu'il faut que tu découpes le contenu de ton textbox au fur et à mesure que tu veux aller à la ligne.
J'ai trouvé un tutorial au sujet de l'impression sur le site : http://www.developpez.com/vbasic/.

Ce tutorial est un fichier pdf de 10 pages écrites par J-M RABILOUD dont l'adresse que tu pourras lire à l'adresse : http://bidou.developpez.com/Impression_vb.pdf

Extrait :
'=============================
Impression de longues chaînes
En général, les chaînes sont coupées dans les contrôles par VbCrLf et l'impression se passe bien. Mais par
exemples, lors de l'impression d'une chaîne qui n'apparaît pas sur le formulaire, ou dans un TextBox multilignes,
ce caractère n'est pas présent dans la chaîne. L'imprimante risque alors de déborder du cadre ou de la feuille.
On utilise alors la fonction suivante pour découper la chaîne.
N.B : Cette fonction gère le cas de très longues chaînes, elle peut être optimisée si l'on est sûr de ne jamais
rencontrer de chaîne de plus de 3 ou 4 lignes.
Private Function DecoupeChaine(ByVal TextLong As String, ByVal TailleMax As Single) As String()
Dim TabSplit() As String, TabRetour() As String, compteur1 As Long, compteur2 As Long
Dim TabMot() As String, ChaineInter As String
TabSplit = Split(TextLong, vbCrLf)
ReDim TabRetour(0 To 0)
For compteur1 = 0 To UBound(TabSplit)
If Printer.TextWidth(TabSplit(compteur1)) > TailleMax Then
TabMot = Split(TabSplit(compteur1), " ")
For compteur2 = 0 To UBound(TabMot)
If Printer.TextWidth(ChaineInter & " " & TabMot(compteur2)) > TailleMax Then
TabRetour(UBound(TabRetour)) = ChaineInter
ChaineInter = TabMot(compteur2)
ReDim Preserve TabRetour(0 To UBound(TabRetour) + 1)
Else
ChaineInter = IIf(Len(ChaineInter) > 0, ChaineInter & " " & TabMot(compteur2),
TabMot(compteur2))
End If
Next compteur2
If Len(ChaineInter) > 0 Then
TabRetour(UBound(TabRetour)) = ChaineInter
ChaineInter = ""
ReDim Preserve TabRetour(0 To UBound(TabRetour) + 1)
End If
Else
TabRetour(UBound(TabRetour)) = TabSplit(compteur1)
ReDim Preserve TabRetour(0 To UBound(TabRetour) + 1)
End If
Next compteur1
ReDim Preserve TabRetour(0 To UBound(TabRetour) - 1)
DecoupeChaine = TabRetour
End Function
De manière générale il est bon de traiter ces chaînes de façon à ne pas laisser dedans de caractères "VbCrLf" ce
qui ramènerait currentX contre la marge de gauche, sauf si c'est évidemment le but rechercher.
'=============================
0
Rejoignez-nous