#1 Wed 17 August 2022 21:58
- Tixi
- Participant actif
- Date d'inscription: 6 Jun 2022
- Messages: 128
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: 128
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: 128
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: 128
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