yan35
Messages postés185Date d'inscriptiondimanche 29 juin 2003StatutMembreDernière intervention20 juin 2013
-
16 avril 2005 à 16:34
yan35
Messages postés185Date d'inscriptiondimanche 29 juin 2003StatutMembreDernière intervention20 juin 2013
-
17 avril 2005 à 10:55
Bonjour,
j'ai un problème de conversion pour les coordonnées utilisées avec Print et l'API TextOut :
avec Print, je fais :
picDessin.currentX = 567
picDessin.currentY = 567
picDessin.Print "A" ' j'obtiens A sur ma pictureBox à 1 cm G et Ht
avec API TextOut, je fais :
TextOut picDessin.hdc, picDessin.currentX / Screen.TwipsPerPixelX, _
picDessin.currentY / Screen.TwipsPerPixelX, "A", Len("A")
' j'obtiens mon A sur ma pictureBox à 1 cm G et Ht exatement comme avec Print
Mais maintenant Problème, si je fais la même chose mais avec Printer au lieu de
PictureBox, je ne maîtrise + les positions ! ?
avec Print
Printer.currentX = 567 - margeTecG
' où margeTecG correspond au décallage de la marge technique de l'imprimante
Printer.currentY = 567 - margeTecH
' où margeTecH correspond au décallage haut de la marge technique de l'imprimante
Printer.Print "A" ' J'obtiens mon A positionné comme dans pisDessin sur mon feuille A4
avec API TextOut :
printer.print ' pour initialiser et récupérer mon hdc
TextOut printer.hdc, printer.currentX / printer.TwipsPerPixelX, _
printer.currentY / printer.TwipsPerPixelX, "A", Len("A")
Et là je ne retrouve + mon A où je l'attendais !
Je ne comprends pas où je bugg dans ma conversion ?!!!!!
Si quelqu'un peut m'aider MERCI
yan35
Messages postés185Date d'inscriptiondimanche 29 juin 2003StatutMembreDernière intervention20 juin 2013 17 avril 2005 à 10:55
Bonjour et Merci de ton aide,
Cette source est super et je l'avais déjà repérée, mais je suis un peu largué sur certaines fonctions, et dans un 1° temps je voulais comprendre mon problème d'utilisation de TextOut sans le compliquer avec des polices particulières.
Je crois qu'à la longue de tests j'avais fini par trouver, voila ce que j'en ai déduit :
Si l'unité n'est pas modifiée, les coordonnées X et Y pour TextOut s'expriment en pixels mais attention avec des entiers de type Long, sinon ça coince, et dans mon cas d'école de demande d'aide, c'est là que ça coinçait, je crois ! Est-ce bien ça ?
Pour la source d'impression de texte avec orientation, je ne comprends pas :
Hauteur = -(Taille_Fonte * GetDeviceCaps(Contexte, LOGPIXELSY)) / 85
l'api GetDev... renvoie le nbre de pixels par pouce en largeur OK, mais pourquoi Diviser par 85, que représente 85 ?