Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 17 August 2022 21:58

Tixi
Participant actif
Date d'inscription: 6 Jun 2022
Messages: 126

QGIS: Police de taille variable

Bonjour,

Dans une boite de texte du composeur, j ai besoin d afficher du texte dont le nombre de caracteres est tres variable, dans une boite de texte de taille fixe.
Je souhaite imposer des conditions sur la taille de la police (si moins de 15 caracteres, telle taille de police, si plus de 20, telle autre taille)
Malheureusement, dans le composeur, il n y a pas de possibilite d ajouter une formule.
J ai donc pense a cocher la fonction html.
Quelques recherches m ont conduit a ca :

[%case
when  length("text" ) > 15
then
'<font size="18"> "text" </font>'
else
'<font size="20"> "text" </font>'
end%]

Ca ne marche pas bien, "text" est ecrit tel quel, en dur, alors que je souhaite afficher le contenu de la colonne text.
Il doit y avoir des manips a faire avec des guillemets, ou autre.

Apres, si il y a une autre solution que le html, je suis preneur.

Hors ligne

 

#2 Thu 18 August 2022 09:50

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 995

Re: QGIS: Police de taille variable

Vous ne précisez pas d'où provient le texte que vous affichez dans la boite de texte.
Je viens de tester, dans le cas d'un Atlas, en récupérant la valeur d'un champ "text" de l'entité de l'Atlas (avec attribute(@atlas_feature,'text')), et ça fonctionne avec cette formule :

Code:

[%CASE
WHEN length(attribute(@atlas_feature,'text')) > 15
THEN '<font size="18">' || attribute(@atlas_feature,'text') ||'</font>'
ELSE '<font size="20">' || attribute(@atlas_feature,'text') ||'</font>'
END%]

Dernière modification par Sylvain M. (Thu 18 August 2022 09:51)


Sylvain M.

Hors ligne

 

#3 Thu 18 August 2022 19:08

Tixi
Participant actif
Date d'inscription: 6 Jun 2022
Messages: 126

Re: QGIS: Police de taille variable

Ca marche plutot bien, merci.

Cependant, au debut, je croyais qu'il y avait un problemes. J arrivais bien a afficher le contenu du champ 'text', ce qui representait une bonne etape de franchie, mais il n y avait pas de variation de taille de police.
Finaleement, j ai trouve que la taille de la police allait de 1 a 7 avec le html, le 4 correspondant a peu pres au 16 de la boite de texte.
Je ne sais pas si vous avez le meme phenomene chez vous.

Hors ligne

 

#4 Thu 18 August 2022 19:21

FB33
Participant occasionnel
Date d'inscription: 6 Jul 2022
Messages: 48

Re: QGIS: Police de taille variable

Bonjour,

Et en précisant l'unité du font-size, notamment en ajoutant "px" pour pixels ?.. => par exemple : font size="18px"

Hors ligne

 

#5 Thu 18 August 2022 22:25

Tixi
Participant actif
Date d'inscription: 6 Jun 2022
Messages: 126

Re: QGIS: Police de taille variable

Il semble que la police soit bien graduee de 1 a 7

https://tutorialehtml.com/fr/html-polic … e-de-base/

Hors ligne

 

#6 Fri 19 August 2022 07:34

FB33
Participant occasionnel
Date d'inscription: 6 Jul 2022
Messages: 48

Re: QGIS: Police de taille variable

En effet, je me suis mélangé les pinceaux avec la propriété css "font-size" (avec trait d'union) ... Désolé pour le temps perdu.

https://developer.mozilla.org/fr/docs/Web/CSS/font-size

Hors ligne

 

#7 Fri 19 August 2022 13:35

Tixi
Participant actif
Date d'inscription: 6 Jun 2022
Messages: 126

Re: QGIS: Police de taille variable

Ne vous excusez pas. Vous m'avez donné une idée
Pour que ca fonctionne comme du CSS, il faut écrire comme du CSS. Logique

Code:

[%CASE
WHEN length(attribute(@atlas_feature,'text')) > 23
THEN '<p style="font-size:10">' || attribute(@atlas_feature,'text') ||'</p>'
ELSE '<p style="font-size:7">' || attribute(@atlas_feature,'text') ||'</p>'
END%]

Ca marche, et c'est bien mieux, car j'étais bloqué. la taille 1 correspondait au 9 que j'ai d'habitude dans le composeur. Du coup, je ne pouvais pas aller plus bas. Un coup d'épée dans l'eau.

Je n ai pas essayé px, em ou % comme dans CSS, ca doit fonctionner aussi

Hors ligne

 

Pied de page des forums

Powered by FluxBB