Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

TUTO=<IMPRESSION D'UN TEXT>


Information sur la source

Description

Voici un tout petit tutorial pour imprimer une cas texte
 

Source

  • 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
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

Conclusion

- Explications : La syntaxe est plutôt simple et c'est tant mieux pour nous ;) .

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.

Ensuite on imprime le texte de la TextBox "Contenu" avec : Printer.Print Contenu.Text .

Pour finir : Printer.EndDoc marque la fin de l'impression.

Vous pouvez tester votre programme... n'oubliez pas d'allumer l'imprimante ;) !


 

Commentaires et avis

signaler à un administrateur
Commentaire de protect le 04/01/2004 01:44:51

scuz  pour la faute reparation=&gt;
Voici un tout petit tutorial pour imprimer une case texte

signaler à un administrateur
Commentaire de Warny le 05/01/2004 15:26:44

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

signaler à un administrateur
Commentaire de PROGRAMMIX le 05/01/2004 17:16:11

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 Then
Printer.EndDoc
Else
Printer.KillDoc
End If

signaler à un administrateur
Commentaire de pcpunch le 05/01/2004 17:53:54

"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étres
Printer.FontSize = 20 'taille
Printer.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 texte
Printer.Print "Voila mon texte"
'imprimer picture1 gauche 10mm, hau 10mm, largeur 100mm,hauteur 100mm
Printer.PaintPicture picture1, 10, 10, 100, 100

Etc........

signaler à un administrateur
Commentaire de caux le 20/07/2005 19:23:02

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 :)

signaler à un administrateur
Commentaire de Warny le 21/07/2005 08:22:30

dim lignes() as string
dim i as long
lignes = split(textbox1.text,vbcrlf)
for i = lbound(lignes) to ubound(lignes)
    printer.print lignes(i)
next

signaler à un administrateur
Commentaire de DARKSIDIOUS le 21/07/2005 08:36:15 administrateur CS

Pour l'impression multiligne, utilisez plutôt les API : DrawText est parfaite !

DarK Sidious

signaler à un administrateur
Commentaire de colin005 le 23/08/2006 12:02:20

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

signaler à un administrateur
Commentaire de bfb le 11/06/2007 10:38:23

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

signaler à un administrateur
Commentaire de DARKSIDIOUS le 11/06/2007 11:02:16 administrateur CS

Il faut redéfinir le CurrentY pour chaque ligne imprimée.

signaler à un administrateur
Commentaire de bfb le 12/06/2007 11:51:34

ok mais comment tu le fais.
aurais tu l'extrème amabilité de m'envoyer la ligne de code
et où il faut la placer.
voici les lignes que j'ai déja :

Printer.FontSize = Recherche.Twest.FontSize
Printer.Font = Recherche.Twest.Font
Printer.ScaleMode = vbMillimeters
Printer.ScaleLeft = 25 'indique la marge gauche de toute les lignes A TESTER
'Pour la 1ere ligne
Printer.CurrentX = 20 'marge gauche
Printer.CurrentY = 25 'marge droite

msg = MsgBox("Voulez vous imprimer votre recherche maintenant", vbYesNo, "Impression")
If msg = vbNo Then
MsgBox "Impression annulé", vbExclamation, ""
GoTo fin:
Else
Printer.Print Recherche.Twest.Text; PrinterPage
Printer.EndDoc
End If
fin:

Un grand merci à toi de prendre en charge les débutants en difficultés.

signaler à un administrateur
Commentaire de DARKSIDIOUS le 12/06/2007 12:48:13 administrateur CS

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 String
tmp = split(Recherche.Twest.Text, vbcrlf)
Dim i as integer
for i = 0 to UBound(tmp)
Printer.CurrentX = 20 'marge gauche
Printer.CurrentY = 25 'marge droite
Printer.Print tmp(i)
next i

signaler à un administrateur
Commentaire de PROGRAMMIX le 12/06/2007 17:17:07

Bonjour

Je 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 gauche
Printer.CurrentY = 25 'marge droite

Mais ne serait-ce pas plutôt
Printer.CurrentX = 20 'marge gauche
Printer.CurrentY = 25 'marge HAUTE

Bien à vous,

Programmix

signaler à un administrateur
Commentaire de DARKSIDIOUS le 12/06/2007 17:25:38 administrateur CS

oui tout à fait programmix ! bien vu (j'ai fait un bête copier coller !).

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version


HTC G1

Entre 449€ et 449€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,593 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.