Conversion Print vers api TextOut

yan35 Messages postés 185 Date d'inscription dimanche 29 juin 2003 Statut Membre Dernière intervention 20 juin 2013 - 16 avril 2005 à 16:34
yan35 Messages postés 185 Date d'inscription dimanche 29 juin 2003 Statut Membre Dernière intervention 20 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

2 réponses

cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
17 avril 2005 à 09:26
Bonjour
Dans ma source :
http://www.vbfrance.com/code.aspx?ID=6359
le positionnement fonctionne très bien.
0
yan35 Messages postés 185 Date d'inscription dimanche 29 juin 2003 Statut Membre Dernière intervention 20 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 ?

Merci beaucoup
0
Rejoignez-nous