iron ian
Messages postés13Date d'inscriptionlundi 7 mai 2007StatutMembreDernière intervention16 janvier 2008
-
11 mai 2007 à 01:35
iron ian
Messages postés13Date d'inscriptionlundi 7 mai 2007StatutMembreDernière intervention16 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!!!
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 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 ...
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 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.
iron ian
Messages postés13Date d'inscriptionlundi 7 mai 2007StatutMembreDernière intervention16 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)