Impression formulaire

Résolu
iron ian
Messages postés
13
Date d'inscription
lundi 7 mai 2007
Statut
Membre
Dernière intervention
16 janvier 2008
- 11 mai 2007 à 01:35
iron ian
Messages postés
13
Date d'inscription
lundi 7 mai 2007
Statut
Membre
Dernière intervention
16 janvier 2008
- 11 mai 2007 à 16:28
Salut à tous! J'utilise VB6 et je cherche à imprimer un formulaire.
J'ai cherché un peu partout et j'ai trouvé 2 méthodes:
1ere :  imprimer directement la form (pb: imprime les boutons)

2e :
For Each ContImprim In Me.Controls
If TypeOf ContImprim Is Label Then
    With Printer
    .CurrentX = ContImprim.Left
    .CurrentY = ContImprim.Top
    ....
    End With
    Printer.Print ContImprim.Caption
ElseIf TypeOf ContImprim Is TextBox Then
    With Printer
    .CurrentX = ContImprim.Left
    .CurrentY = ContImprim.Top
    ...
    End With
    Printer.Print ContImprim.Text
End If
Next
End Sub

Je pensais que cette méthode allait fonctionner mais l'imprimante me sort 58 feuilles blanches à part une sur laquelle il y a un mot contenu dans un label.

J'ai vraiment besoin d'aide, c'est assez urgent. Merci d'avance!!!

4 réponses

jmfmarques
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
11 mai 2007 à 15:29
On "n'écrit" ni dans une pictureox, ni dans un Printer !
on y dessine (y compris du texte) !!!
Et on le fait avec la même syntaxe :
Tapicture.Print "toto" au lieu de Printer.Print "toto" !!! C'est tout !

Tu me dis que tu as donné le Scalemode 6 (en millimètres) à ton objet Printer ...
Bien ! et quel scalemode à ta Form ?

Car si elle est en twips,... 250 twips (vraiment très petit) ne sont certes pas 250 millimètres (vraiment grand et hors de ta page !!! ) or, tu places ton currentx et ton currenty en fonction du left et du top de tes contrôles (en twips !!!).. voilà pourquoi mon petit doigt ne se trompait pas, pardi ... et tu imprimes en dehors de ta page .... également pardi ...

J'insiste donc (bûche ce qu'est un scalemode))
3
jmfmarques
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
11 mai 2007 à 13:42
Salut,

Avec ces précisions, nous voilà drôlement renseignés, ma foi ....

Je ne puis dans ces conditions que t'inviter à regarder de plus près ce qu'est un scalemode (tant en ce qui concerne ta Form que ton objet Printer).
Il est vraisemblaable (c'est mon petit doigt qui vient de me glisser la chose à l'oreille) que le seul Label.Caption qu'il imprime est celui d'un label se trouvant près du coin supérieur gauche de ta Form.... (je ne crois pas trop me tromper...)...

Un petit conseil final : l'objet Printer se comporte comme une PictureBox ... Je te recommande donc vivement de faire d'abord tes "essais" en imprimant dans une picturebox, avant de passer à l'objet Printer !! Il reste que la propriété ScaleMoide (que je t'encourage à bûcher activement) aura également son importance avec une PictureBox, bien évidemment....
Bonne étude.
0
iron ian
Messages postés
13
Date d'inscription
lundi 7 mai 2007
Statut
Membre
Dernière intervention
16 janvier 2008

11 mai 2007 à 14:50
Je l'avais pas écrit dans le post mais j'avais mis un scalemode à 6.
Effectivement, le seul truc imprimé, c'est le premier label. Tu aurais une idée de la cause.
Il y aussi le fait que ça imprime 58 pages blanches.

ps: Comment tu met ce qui est contenu dans un label dans une picturebox ? (si c'est bien ce que tu me conseilles de faire)
0
iron ian
Messages postés
13
Date d'inscription
lundi 7 mai 2007
Statut
Membre
Dernière intervention
16 janvier 2008

11 mai 2007 à 16:28
Merci beaucoup, j'avais fait attention au fait que les contoles et le printer n'avait pas le même scalemode.
0