Imprimer une form à l'échelle 90%

Résolu
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014 - 29 juin 2007 à 17:05
 ypa - 23 sept. 2019 à 08:55
A l'aide! Novice en VisualBasic...

J'ai beau consulter les codes... Mais je ne trouve pas comment imprimer une form à 90% du format A4

printer.Orientation = 2                ' mettre en paysage
???                                            ' mettre à l'échelle 90% de l'A4
frmPlanning.printform                 ' imprimer le form actuelle
???                                            ' remettre à l'échelle 100%
printer.Orientation = 1               ' remettre en portrait

Merci d'avance.

jyd

9 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 juin 2007 à 17:48
Property Zoom As Long
    Membre de VB.Printer
    Renvoie ou définit l'échelle de la sortie imprimée (en pourcentage).

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014
29 juin 2007 à 17:50
Je suis trop novice pour comprendre ton message.
Pouvez-vous m'expliquer cela par un petit exemple, s'il-vous-plaît.

Grand merci d'avance.

jyd
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 juin 2007 à 19:02
ce mesage est un extrait de ce que l'on peut lire dans l'explorateur d'objets (F2)

en clair (enfin, en plus clair)

Printer.Zoom = 90 

et voilà, ton zoom fixé à 90%

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014
29 juin 2007 à 19:07
J'ai beau essayer... j'ai toujours l'échelle à 100%...
Qu'est-ce qui se passe ?

Merci de votre aide.

jyd
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 juin 2007 à 19:10
printform n'utilises pas l'objet Printer

faut faire un BitBlt de ta form sur le hDc du Printer
t'aura meme pas a t'occuper du Zoom....

voir sources qui permettent de faire des captures d'ecran.

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014
29 juin 2007 à 19:14
Je ne veux pas faire une capture d'écran, car ma frmPlanning est au-dessus d'autres fenêtres.

Je préfère donc plutôt une solution comme
Printer.zoom = 90

Mais pourquoi cela ne fonctionne-t-il pas chez moi ?
(Visualbasic 6)

jyd
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
29 juin 2007 à 23:33
Renfield te l'a dit... parce que tu utilises Printform

Printform n'a rien à voir avec l'objet Printer
Et Zoom fait partie de l'objet Printer

Donc, soit tu utilises PrintForm tel quel,
soit tu utilises l'objet Printer avec sa propriété Zoom et que tu fais ton modelage de page "à la main",
soit tu trouves une autre méthode ou autre programme tiers.

Si tu veux aller avec Printer, regarde l'aide sur ses propriétés et méthodes
CurrentX et CurrentY   'positionnement
Print                             'envoi de texte ou saut de ligne imprimer
EndDoc                        'envoi à l'imprimante
Font, FontName, FontBold, FontItalic, Fontsize,... 'tout pour la police
Line  ' pour ligne ou encadré
Newpage  'saut de page
Orientation 'portrait ou landscape
textwidth, textheight
et la série Scale
et plein d'autres

MPi
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
30 juin 2007 à 04:42
"Je ne veux pas faire une capture d'écran, car ma frmPlanning est au-dessus d'autres fenêtres."

Je vois pas ou est le soucis...
j'ai aps dit non plus de faire une capture d'ecran avec la touche PrintScreen.

juste de dessiner ta fenetre, dans le Printer
regarde pour cela le code de sources parlant de captures d'ecran

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
Je sais que je réponds tres en retard mais j"ai eu le meme probleme.
La solution la +simple avec printform est, avant d'envoyer la forme a l'imprimante, d'appliquer un scale(x1,y1)-(x2*1.1,y2*1.1) par exemple pour une reduction à 90%.
(a condition de pouvoir commander le reaffichage de la form apres cette commande)
a noter que le changement de portrait a paysage fonctionne avec l'objet printer si necessaire
0
Rejoignez-nous