guiguisi
Messages postés30Date d'inscriptionlundi 31 mars 2003StatutMembreDernière intervention26 juillet 2004
-
23 avril 2003 à 11:44
ludocam21
Messages postés29Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention22 juin 2005
-
2 juin 2005 à 12:51
Je souhaite remplir un formaire avec des cases précises.
J'utilise l'objet printer, mais lorsque j'essai d'imprimer tout à droite (à moins de 1 cm), le code passe, mais ca n'apparait pas à l'impression.
J'ai essayé d'utiliser l'option "printer.width=12500" pour agrandir ma feuille, ma ca me fait un bug.
Soit j'ai oublié quelquechose dans mon code, soit je l'ai oublié dans VB6.
Merci de me venir en aide rapidement. :)
guiguisi
Messages postés30Date d'inscriptionlundi 31 mars 2003StatutMembreDernière intervention26 juillet 2004 24 avril 2003 à 09:50
Merci de ces renseignements. La comparaison finale me renvoie "vrai", mais je vois pas trop ce que ca teste.
En regardant sur le net, j'ai cru comprendre que "getdevcecaps" renvoi une valeur de l'affichage (écran)
Sinon, j'ai largeur_page=20.99 , marge_gauche=0.42 et larg_imp=197.
Please help me, je suis de plus en plus perdu et je sens que l'imprimante va passer par la fenetre. :sad)
cs_rene38
Messages postés1858Date d'inscriptionsamedi 29 juin 2002StatutMembreDernière intervention17 octobre 201311 24 avril 2003 à 11:14
Bonjour
CORRECTION :
Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long
Largeur_page_en_cm = (1440 / 567) * GetDeviceCaps(Printer.hdc, 110) / GetDeviceCaps(Printer.hdc, 88)
Marge_Gauche_en_cm = (1440 / 567) * GetDeviceCaps(Printer.hdc, 112) / GetDeviceCaps(Printer.hdc, 88)
Largeur_Imprimable_en_cm = GetDeviceCaps(Printer.hdc, 4) / 10
Printer.ScaleMode = vbCentimeters
La fonction GetDeviceCaps renvoie des informations sur ce qu'est Capable de faire un périphérique (in english, device) qui est soit l'écran soit une imprimante.
Dans le bout de code que je t'ai donné, il s'agit de l'imprimante puisque le premier paramètre passé à la fonction est Printer.hDC (= contexte de l'imprimante)
Il y a 2 petites erreurs dans mon code :
largeur_page=20.99 cm
marge_gauche=0.42 cm
Largeur_Imprimable = 19,7 cm
La marge droite vaut donc :20,99 - 0,42 - 19,7 20,99 - 20,12 0,87 cm
tu ne peux donc pas écrire à plus de 20,12 cm du bord gauche de la feuille
Autrement dit : Printer.CurrentX doit être < 20,12
Si Printer.CurrentX + Printer.TextWidth(Texte) <= Largeur_Imprimable est vrai, ça veut dire que ton texte sera imprimé sinon il sera coupé.
Si tu utilises Printer.Print (tout seul ou avec Printer.CurrentX = 0), tu commences à imprimer à 0,42 cm du bord gauche de la feuille.
Printer.TextWidth(Texte) <= Largeur_Imprimable est vrai veut dire que ton texte tient dans la page si tu commences à écrire à gauche de la page.
ludocam21
Messages postés29Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention22 juin 2005 2 juin 2005 à 12:51
Bonjour,
je pense que vous pouvez m'aider d'après ce dont vous parlez. j'ai fait un bouton qui me permet d'imprimer le contenu d'une textbox, et ça marche, le probleme c'est qua l'impression ça me coupe une partie du texte a droite.
je pense qu'il y a une classe d'impression printer. "quelque chose" qui peut gérer ça mais je sais pas quoi.
si vous pouvez m'aider ce serait vraiment sympa.
ludocam21@hotmail.fr