Private Sub Form_Load() Contenu.Text = "Voici votre texte imprimé sur une feuille ! End Sub ----- Private Sub CmdImprimer_Click() Printer.Print 'initialisation de l'imprimante Printer.Print Contenu.Text Printer.EndDoc End Sub
scuz pour la faute reparation=>Voici un tout petit tutorial pour imprimer une case texte
je ne suis pas sûr,mais il me semble que ton code ne passe pas à la ligne quand il arrive en bout de page.Sinon, pour régler le problème, il existe une fonction qui calcule la taille que prend un texte sur un support donné. Tous les objets possedant un handle graphique exportent cette fonction, donc tu devrais la retrouver sur l'objet printer
Il m'est déjà arrivé d'imprimer sans initialiser l'imprimante avec Printer.Print.Je ne suis pas convaincu que sans cette ligne, le code reste en suspend puisque c'est l'instruction Printer.EndDoc qui donne l'ordre à l'imprimante d'imprimer ou non.Ainsi, je peux par exemple faire plusieurs lignes d'impression puis demander en final à l'utilisateur s'il veut ou non imprimer sa feuille.Private Sub Essai()Printer.Print "Première ligne"Printer.Print "Deuxième ligne"If MsgBox("Faut-il imprimer ou non ?", vbYesNo") = vbYes ThenPrinter.EndDocElsePrinter.KillDocEnd If
"La première ligne de la procédure : Printer.Print, est nécéssaire à l'initialisation de l'imprimante. Si on ne place pas cette ligne, l'impression restera en suspend jusqu'à la fermeture de votre programme."Totalement faux!!!! ca sert a rien!!!! c'est la commande enddoc qui envoie le texte a l imprimante si cette commande est omise alors l'impression débutera a la fermeture du soft!!!!!!!De plus tans qu'a faire un tuto autant le faire plus complet !! ex:Printer.ScaleMode = vbMillimeters 'Mode MillimétresPrinter.FontSize = 20 'taillePrinter.CurrentX = 10 ' ecrit a 10mm sur axe X (a partir de gauche)Printer.CurrentY = 20 'ecrit à 20mm sur axe y (a partir su haut)'Ecrire du textePrinter.Print "Voila mon texte"'imprimer picture1 gauche 10mm, hau 10mm, largeur 100mm,hauteur 100mmPrinter.PaintPicture picture1, 10, 10, 100, 100Etc........
ma question peut vous paraître idiote, mais comment fait-on pour imprimer les autre lignes si la textbox est en multiligne.parce que là vous expliquez pour une ligne, mais personne n'utilise une feuille A4 pour une ligne :)
dim lignes() as stringdim i as longlignes = split(textbox1.text,vbcrlf)for i = lbound(lignes) to ubound(lignes) printer.print lignes(i)next
Pour l'impression multiligne, utilisez plutôt les API : DrawText est parfaite !DarK Sidious
ou plus simple :à la place de :Printer.Print "Voila mon texte"mettre :Printer.Print "Voila mon texte de la ligne 1" + vbCrLf + "Voila mon texte de la ligne 2"Congelli 501
slt je suis novice dans l'impression de document et je veux imprimer le contenu d'un textbox multiligne et le code que tu as mis comme tous ceux que j'ai essayé jusqu'ici me place correctement la 1ere ligne mais imprime les suivantes au bord de la page sans la marge que j'ai défini (2cm) pourais tu m'aider. 1000 mercis
Il faut redéfinir le CurrentY pour chaque ligne imprimée.
ok mais comment tu le fais.aurais tu l'extrème amabilité de m'envoyer la ligne de codeet où il faut la placer.voici les lignes que j'ai déja :Printer.FontSize = Recherche.Twest.FontSizePrinter.Font = Recherche.Twest.FontPrinter.ScaleMode = vbMillimetersPrinter.ScaleLeft = 25 'indique la marge gauche de toute les lignes A TESTER'Pour la 1ere lignePrinter.CurrentX = 20 'marge gauchePrinter.CurrentY = 25 'marge droitemsg = MsgBox("Voulez vous imprimer votre recherche maintenant", vbYesNo, "Impression")If msg = vbNo ThenMsgBox "Impression annulé", vbExclamation, ""GoTo fin:ElsePrinter.Print Recherche.Twest.Text; PrinterPagePrinter.EndDocEnd Iffin:Un grand merci à toi de prendre en charge les débutants en difficultés.
Il faut splitter ta chaîne sur le vbcrlf, puis imprimer ligne par ligne.Ca doit ressembler à quelque chose comme cà :Remplacer Printer.Print Recherche.Twest.Text; PrinterPage par :Dim tmp() as Stringtmp = split(Recherche.Twest.Text, vbcrlf)Dim i as integerfor i = 0 to UBound(tmp)Printer.CurrentX = 20 'marge gauchePrinter.CurrentY = 25 'marge droitePrinter.Print tmp(i)next i
BonjourJe réagis parce qu'il me semble qu'il y a peut-être une mauvaise compréhension des "paramètres"Je vous cite Printer.CurrentX = 20 'marge gauchePrinter.CurrentY = 25 'marge droiteMais ne serait-ce pas plutôtPrinter.CurrentX = 20 'marge gauchePrinter.CurrentY = 25 'marge HAUTEBien à vous,Programmix
oui tout à fait programmix ! bien vu (j'ai fait un bête copier coller !).
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 598 790 membres 59 nouveaux aujourd'hui 15 441 membres club