ScaleY Imprimante

Résolu
peug Messages postés 232 Date d'inscription mercredi 25 octobre 2000 Statut Membre Dernière intervention 5 octobre 2012 - 6 sept. 2006 à 17:57
peug Messages postés 232 Date d'inscription mercredi 25 octobre 2000 Statut Membre Dernière intervention 5 octobre 2012 - 6 sept. 2006 à 18:13
Bonjour,
Pourquoi le scaleY change d'une imprimante à une autre ?
printer.ScaleY(1, vbCentimeters, printer.ScaleMode)

d'une imprimante A3 à une autre A4, c'est différent... ?
merci

4 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
6 sept. 2006 à 18:09
Tout dépend de la configuration de ton imprimante.
Mais si les 2 sont configurées en A4 Portrait tu devrais obtenir 29.7 en scaleY sur les 2.

Attention aux marges non imprimable des imprimantes qui peuvent fausser les mesures. Certaines n'en ont pas (pas mal de laser), d'autres en ont, et elles peuvent etre importantes (Jet d'encre de 3-4 ans ou plus, notament)

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
6 sept. 2006 à 18:01
Heu t'as pas réfléchi un peu ????

Une feuille A3 c'est pas la même taille qu'une feuille A4. C'est normal que le scaleY en centimetre soit différent.

A4 --> 21x29.7 cm
A3 --> 29.7x42 cm

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
peug Messages postés 232 Date d'inscription mercredi 25 octobre 2000 Statut Membre Dernière intervention 5 octobre 2012
6 sept. 2006 à 18:04
hihihi
Non en fait si j'imprime par exemple un rectangle en fixant une hauteur, le résultat est différent, d'où ma question
lheight = oDest.ScaleY(fUserValue, vbCentimeters, oDest.ScaleMode)
0
peug Messages postés 232 Date d'inscription mercredi 25 octobre 2000 Statut Membre Dernière intervention 5 octobre 2012
6 sept. 2006 à 18:13
ok je vais interroger l'imprimante avec cela alors :
    lValue = GetDeviceCaps(m_hDC, PHYSICALOFFSETX)
    fLeft = CSng(lValue) 'Printer.ScaleX(lValue, vbPixels, vbCentimeters)

    lValue = GetDeviceCaps(m_hDC, PHYSICALOFFSETY)
    fTop = CSng(lValue) 'Printer.ScaleY(lValue, vbPixels, vbCentimeters)

    'lValue = GetDeviceCaps(oDest.hdc, HORZSIZE) 'donne la valeur en mm
    'fWidth = oDest.ScaleX(lValue, vbMillimeters, vbPixels)
    'fWidth = lValue / 10 'en cm
    lValue = GetDeviceCaps(m_hDC, HORZRES) 'donne la valeur en px
    fWidth = CSng(lValue)
    '
    'lValue = GetDeviceCaps(oDest.hdc, VERTSIZE) 'donne la valeur en mm
    'fHeight = oDest.ScaleY(lValue, vbMillimeters, vbPixels)
    'fHeight = lValue / 10 'en cm
    lValue = GetDeviceCaps(m_hDC, VERTRES) 'donne la valeur en px
    fHeight = CSng(lValue)

merci
0
Rejoignez-nous