VB6 impression [Résolu]

Signaler
Messages postés
3
Date d'inscription
jeudi 27 novembre 2003
Statut
Membre
Dernière intervention
20 mai 2007
-
Messages postés
3
Date d'inscription
jeudi 27 novembre 2003
Statut
Membre
Dernière intervention
20 mai 2007
-
Bonjour,

Je suis entrain de faire un programme de facturation. Jusque tout va bien :)

Mais lorsque j'imprime, la première foi ca marche, j'ai toute la facture, et la 2eme foi j'ai juste un " 5 " qui aparait.

Voila le code :

    Printer.PaintPicture Picture1.Picture, 500, 1000
    Printer.ScaleMode = 6
    Printer.CurrentX = 20
    Printer.CurrentY = 100
    Printer.FontBold = True
    Printer.FontSize = 14


    Printer.Print ("5")
    Printer.EndDoc

Je comprend pas commen ca peux marché 1foi, et plus la foi d'apres. Quand je redemarre le projet ca marche de nouveau 1 foi correctement puis de nouveau que le 5.

Merci de votre aide

6 réponses

Messages postés
3
Date d'inscription
jeudi 27 novembre 2003
Statut
Membre
Dernière intervention
20 mai 2007

Non ce n'est pas le double, j'ai aussi prie en compt ta 2eme remarque :)

voici la solution

Printer.ScaleMode = 1
Printer.PaintPicture Picture1.Picture, 500, 1000'Image de la facture Picture1.Picture="facture.jpg"
Printer.ScaleMode = 6
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Bonjour,
On ne voit pas la procédure en entier !

On devine alors que ta procédure d'impression ne reprend pas depuis :
Printer.PaintPicture Picture1.Picture, 500, 1000

Si ce que tu cherches à faire esr en fait tout simplement l'impression en plusieurs exemplaires, ce n'est pas ainsi qu'il faut faire; mais utiliser la propriéré Copies de l'objet Printer
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Je relis ton code et pars maintenant du proncipe selon lequel tu reprends bien l'impression depuis le Printer.PaintPicture........

Question : As-tu bien pensé à mettre à True la propriété Autoredraw de la PictureBox Picture1 ? (car si tu affiche autre chose entre temps elle redeviendrait vide dans celà).
Je te conseille également de figer lr dessin de ta picturebox Picture1 par l'instruction
Picture1.Picture = Picture1.Image dès que tu as fini de "peindre" dans Picture1
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
115
de toute façon, je vois pas l'intérêt de peindre dans un picturebox pour l'imprimer : si tu y mets du texte, il va être imprimé de façon très pixélisé !
Messages postés
3
Date d'inscription
jeudi 27 novembre 2003
Statut
Membre
Dernière intervention
20 mai 2007

Private Sub CmdImprimer_Click()
  
    Printer.PaintPicture Picture1.Picture, 500, 1000 'Image de la facture Picture1.Picture="facture.jpg"
    Printer.ScaleMode = 6
    Printer.CurrentX = 20
    Printer.CurrentY = 100
    Printer.FontBold = True
    Printer.FontSize = 14


    Printer.Print ("5")
    Printer.EndDoc


End Sub

J'ai passer le AutoRedraw à true ca ne change rien

Donc lorsque je click la première foi sur le bouton imprimé tout va bien. Mais pour la facture suivante ...
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
"Mais pour la facture suivante ..."



1) la facture suivante est-elle un double de la 1ère ?



2) qu'as-tu fait de ma deuxième remarque (voir plus haut) ? Tu t'es contenté de la lire ou tu en as profité pour ouvrir ton aide en ligne sur le mot image ?

On ne voit toujours pas le code par lequel tu définis puis figes (dans ta picturebox), le "dessin" du texte de ta facture.

La remarque de DARKSIDIOUS (lis-la donc encore et encore) est par ailleurs totalement fondée. On ne cessera de répêter ce genre de choses.