Connaitre la hauteur d'un texte

bonjour à tous

Je cherche à connaitre la hauteur d’un texte tracé avec la commande SVG_New_textArea
je pensais utiliser la commande SVG_GET_ATTRIBUTES, mais l’attribut “height” qui me semblait bien contient la valeur “auto”

une idée ?

Product :4D - v17R4
OS : Windows

Bonjour,

Il faut isoler le texte dans une zone svg, créer une image à partir du svg et utiliser PROPRIETES IMAGE pour connaitre sa hauteur.

Tu peux peut-être essayer en adaptant le code ci-dessous, l’idée étant de créer le texte svg, d’en faire l’image, enfin à lire les dimensions de cette image. Je ne crois pas avoir essayé avec SVG_New_textArea, par contre je me suis servi d’un truc similaire pour “rétropédaler” l’interligne, justement pour ne pas utiliser SVG_New_textArea qui, à l’époque, avait un problème de rendu avec certains navigateurs.

<code 4D>
//svg_text2Pict (texte;fonte;corps { ;style { ;couleur) -> img
//retourne une image du texte passé en paramètre
//utiliser les constantes 4D pour le style
//µ arnaud * 07/09/10 * debug
//µ simplification proposée par vdl * 17/06/10
//© Arnaud de Montard * 15/01/10
//ƒ Vincent de Lachaux * tiré de svg_Get_string_width
//_
C_IMAGE($0)
C_TEXTE($1)
C_TEXTE($2)
C_ENTIER LONG($3)
C_ENTIER LONG($4)
C_ENTIER LONG($5)
//C_REEL($6) `#NI largeur max, à voir

C_ENTIER LONG($couleur_l)
C_ENTIER LONG($style_t)
C_ENTIER LONG($corps_l)
C_IMAGE($buffer_i)
//C_REEL($rLargeurMax)
C_TEXTE($color_t)
C_TEXTE($police_t)
C_TEXTE($root_t)
C_TEXTE($txt_t)

Si (Faux)
C_IMAGE(svg_text2Pict ;$0)
C_TEXTE(svg_text2Pict ;$1)
C_TEXTE(svg_text2Pict ;$2)
C_ENTIER LONG(svg_text2Pict ;$3)
C_ENTIER LONG(svg_text2Pict ;$4)
C_ENTIER LONG(svg_text2Pict ;$5)
//C_REEL(svg_text2Pict ;$6)
Fin de si

//_
Au cas ou
: (Nombre de parametres<3)
xErrDev (Nom methode courante+" 3 params attendus")
: ($1="")
//nada
Sinon
$txt_t:=$1
$police_t:=$2
$corps_l:=$3
$style_t:=0 //normal
$couleur_l:=0x0000 //noir
//$rLargeurMax:=MAXENT `pas de limite de largeur
Si (Nombre de parametres>3)
$style_t:=$4
Si (Nombre de parametres>4)
$couleur_l:=$5
//Si (Nombre de parametres>5)
//$rLargeurMax:=$6
//Fin de si
Fin de si
Fin de si

//dessin
$root_t:=DOM Creer ref XML(“svg”;“http://www.w3.org/2000/svg”)

Si (OK=1)
//µ simplification proposée par vdl
$color_t:=SVG_Color_RGB_from_long ($couleur_l)
$textID:=SVG_New_text ($root_t;$txt_t;0;0;$police_t;$corps_l;$style_t;Aligné à gauche;$color_t) //;rotation{;interligne{;étirement}}}}}}}}}})

SVG EXPORTER VERS IMAGE($root_t;$buffer_i)
$0:=$buffer_i
$buffer_i:=$buffer_i*0

DOM FERMER XML($root_t)
Fin de si
Fin de cas
//_
</code 4D>

top, ça marche, merci vous deux