PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Imprimer et Aligner des mots sur le BAS des lettres et non sur le haut
Imprimer et Aligner des mots sur le BAS des lettres et non sur le haut
Iniciado por Jean Tuyaerts, set., 15 2005 7:22 PM - 5 respostas
Publicado em setembro, 15 2005 - 7:22 PM
Bonjour,

En utilisant "iImprimemot" :
est-il possible d'imprimer deux mots, sur une même ligne, en utilisant des polices de tailles différentes, et de faire en sorte que l'alignement se fasse sur la bas des lettres et non sur le haut des lettres ?

Exemple :
iCréePolice(1,12,iGras,"Arial")
iCréePolice(2,8,iNormal,"Arial")
iImprimemot(iPolice(1)+"MA SOCIETE"+iPolice(2)+"sa")

Un grand merci à celui (ceux) qui pourraient me répondre.
Publicado em setembro, 16 2005 - 2:19 PM
Bonjour,

iAperçu(i100)
iCréePolice(1,12,iGras,"Arial")
iCréePolice(2,8,iNormal,"Arial")
iImprimeMot(iPolice(1)+"MA SOCIETE")
iPosY(iPosY+1)
iImprimeMot(iPolice(2)+"sa")
iFinImprime()

--
Ed en Ligne

"Jean Tuyaerts" <jean.tuyaerts@tiscali.be> a écrit dans le message de news:
43299929$1@news.pcsoft.fr...
Bonjour,

En utilisant "iImprimemot" :
est-il possible d'imprimer deux mots, sur une même ligne, en utilisant des
polices de tailles différentes, et de faire en sorte que l'alignement se
fasse sur la bas des lettres et non sur le haut des lettres ?

Exemple :
iCréePolice(1,12,iGras,"Arial")
iCréePolice(2,8,iNormal,"Arial")
iImprimemot(iPolice(1)+"MA SOCIETE"+iPolice(2)+"sa")

Un grand merci à celui (ceux) qui pourraient me répondre.


Publicado em setembro, 16 2005 - 4:42 PM
Bonjour,

En fait en windev 5, l'alignement se faisait sur le bas, ce qui me semble le plus logique (fonctionnement Word par exemple).

Depuis Windev7, ca a changé et pas moyen, malgré plusieurs demande au ST, d'avoir une fonction équivalente.

Ce qui existe est Iparamètre("Windev55=vrai") (il me semble) pour simuler les éditions Windev5.
Mais c'est pas génial.

SLTS
Publicado em setembro, 16 2005 - 6:31 PM
Merci, cela fonctionne avec deux polices de 12 et 8 points.
Mais en passant à d'autres tailles (15 et 8 par ex.), cela n'est plus aligné.

Je cherche un moyen de déterminer le nombre de points séparant la "base line"
d'une police d'une certaine hauteur et la "base line" d'une police d'une autre
hauteur pour calculer le X de l'expression : iPosy(iPosy()+X)

en essayant ce qui suit :
ydif est un réel
ydif = iHauteurTexte(ipolice(1)+chaine1) - iHauteurTexte(ipolice(2)+chaine2)
iPosY(iPosY+ydiff)
cela ne fonctionne pas. Sans doute parce le nombre de points entre
le bas de la police et la "base line" est différent pour les 2 polices.

Je pourrais sans doute résoudre mon problème (1) si je pouvais récupérer
le "device context" de l' "imprimante" après iApercu afin d'utiliser l'API
--> SetTextAlign avec TA_BASELINE.
Mais je ne trouve pas comment le récupérer. (expérience windev = 1mois)

(1) pour faire bref, je dois transposer en windev une routine d'édition de documents type Facture etc dont je peux facilement récupérer la description. Utiliser WDeta ne serait pas possible (des centaines de modèles différents).
Publicado em setembro, 19 2005 - 11:51 AM
Bonjour,

Désolé, voici une procédure valable quelque soit la police utilisée.

HauteurTexte1 est un entier

HauteurTexte2 est un entier

iAperçu(i100)

iCréePolice(1,12,iGras,"Arial")

iCréePolice(2,8,iNormal,"Arial")

iImprimeMot(iPolice(1)+"MA SOCIETE")

HauteurTexte1=iHauteurTexte(iPolice(1)+"MA SOCIETE")

HauteurTexte2=iHauteurTexte(iPolice(2)+"sa")

iPosY(iPosY+(HauteurTexte1-HauteurTexte2))

iImprimeMot(iPolice(2)+"sa")

iFinImprime()


--
Ed en Ligne


"Jean Tuyaerts" <jean.tuyaerts@tiscali.be> a écrit dans le message de news:
432aded6$1@news.pcsoft.fr...
Merci, cela fonctionne avec deux polices de 12 et 8 points.
Mais en passant à d'autres tailles (15 et 8 par ex.), cela n'est plus
aligné.

Je cherche un moyen de déterminer le nombre de points séparant la "base
line"
d'une police d'une certaine hauteur et la "base line" d'une police d'une
autre
hauteur pour calculer le X de l'expression : iPosy(iPosy()+X)

en essayant ce qui suit :
ydif est un réel
ydif = iHauteurTexte(ipolice(1)+chaine1) -
iHauteurTexte(ipolice(2)+chaine2)
iPosY(iPosY+ydiff)
cela ne fonctionne pas. Sans doute parce le nombre de points entre
le bas de la police et la "base line" est différent pour les 2 polices.

Je pourrais sans doute résoudre mon problème (1) si je pouvais récupérer
le "device context" de l' "imprimante" après iApercu afin d'utiliser l'API
--> SetTextAlign avec TA_BASELINE.
Mais je ne trouve pas comment le récupérer. (expérience windev = 1mois)

(1) pour faire bref, je dois transposer en windev une routine d'édition de
documents type Facture etc dont je peux facilement récupérer la
description. Utiliser WDeta ne serait pas possible (des centaines de
modèles différents).

Publicado em setembro, 19 2005 - 12:51 PM
Merci pour votre précision, mais ...

en essayant avec des polices de tailles 18 et 8 (entre autres).
"sa" vient toujours plus bas que "Ma SOCIETE".
Comme je le disais dans mon précédent message, j'ai l'impression
que cela provient du fait que le nombre de points entre le bas de la police
et la "baseline" n'est pas le même pour des polices de tailles différentes
(et que "iHauteurTexte" se calcule sur la hauteur totale de la police).