Imprimer une form à l'échelle 90% [Résolu]

Messages postés
315
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
22 décembre 2014
- - Dernière réponse :  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
Afficher la suite 

9 réponses

Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57
0
Merci
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
Commenter la réponse de Renfield
Messages postés
315
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
22 décembre 2014
0
Merci
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
Commenter la réponse de jytest
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57
0
Merci
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
Commenter la réponse de Renfield
Messages postés
315
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
22 décembre 2014
0
Merci
J'ai beau essayer... j'ai toujours l'échelle à 100%...
Qu'est-ce qui se passe ?

Merci de votre aide.

jyd
Commenter la réponse de jytest
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57
0
Merci
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
Commenter la réponse de Renfield
Messages postés
315
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
22 décembre 2014
0
Merci
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
Commenter la réponse de jytest
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
15
0
Merci
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
Commenter la réponse de cs_MPi
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57
0
Merci
"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
Commenter la réponse de Renfield
0
Merci
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
Commenter la réponse de ypa