#1 Sun 07 May 2023 18:46
- Yunali
- Participant occasionnel
- Date d'inscription: 24 Mar 2020
- Messages: 34
QGIS/Atlas: Ajouter grand texte mise en page
Bonjour,
Je réalise un atlas de plus de 100 pages sur QGIS 3.28.
J'aimerais intégrer à chaque page un texte lié à la carte (changeant donc à chaque nouvelle page de l'atlas).
Il s'agit de textes descriptifs de plusieurs lignes (environ 1400 caractères max).
Je cherche comment intégrer ces textes de manière automatique à l'atlas.
J'ai tenté 2 options qui ne sont pas concluantes :
Option 1 : intégrer ces textes dans la table attributaire de la couche de couverture de l'atlas, puis ajouter une zone de texte sur la mise en page et la remplir via une expression, en indiquant le champ qui contient le texte. Malheureusement le texte est tronqué dès les premières phrases et n'apparait pas en entier, alors qu'il apparaissait bien en entier dans la cellule de la table attributaire (en créant le champ, j'ai indiqué une longueur de 1400 caractères).
Option 2 : insérer la table attributaire de la couche dans la mise en page. Cette fois-ci ça marche, le texte n'est pas tronqué, mais le tableau est trop grand car il attend, au mieux, la fin d'une phrase pour passer à la ligne, et impossible de le redimensionner. Le tableau a le temps de sortir 3 fois de la page. Il faudrait l'équivalent du paramètre "renvoyer automatiquement à la ligne" d'Excel, pour dimensionner le tableau comme souhaité puis que QGIS adapte le texte en fonction, et non l'inverse.
J'ai donc écarté ces 2 options.
Connaitriez-vous d'autres solutions pour afficher ces grands textes dynamiques dans l'atlas ?
Merci par avance !
Hors ligne
#2 Mon 08 May 2023 10:21
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3883
Re: QGIS/Atlas: Ajouter grand texte mise en page
Bonjour,
Option 1
Votre zone de texte est-elle suffisamment grande pour accueillir tout le texte?
Option 2
Avez-vous joué avec les paramètres d'apparence de l'objet table, et notamment la dernière ?
Hors ligne
#3 Mon 08 May 2023 10:39
- p.jeremie
- Participant assidu
- Lieu: Valence
- Date d'inscription: 10 Sep 2017
- Messages: 412
Re: QGIS/Atlas: Ajouter grand texte mise en page
Bonjour,
L'option 1 semble bien fonctionner pour moi.
Vous utilisez quel format de fichier ? J'ai testé avec un geopackage.
Cependant, j'ai le souci du retour à la ligne que vous indiquez.
Pour le régler j'ai utilisé la fonction wordwrap() qui permet de découper une chaîne de caractère avec des retours à la ligne selon une longueur max ou min par ligne.
Il faut que les mots de la chaîne de caractères ne soient pas plus longs que la longueur max de la ligne, sinon le mot ne sera pas affiché en entier si votre zone de texte est ajustée à la longueur max indiquée.
edit : j'ai réussi dans une zone de texte à pouvoir découper les mots trop longs à la longueur max souhaitée, à l'aide de l'expression suivante :
Code:
--variable pour définir la longueur max souhaitées with_variable('longueur',70, -- découpe à la longueur max wordwrap( -- concaténation des élements de l'array dans une string avec une espace en séparation array_to_string( -- arry pour chaque mot du champ "texte" array_foreach( string_to_array( "texte",' '), -- si le mot a une longueur inférieure ou égale à la longueur souhaitée if( length(@element)<=@longueur, -- on conserve la chaine @element, -- sinon on découpe en chaines de x car séparées par une espace array_to_string( -- utilisation d'une variable car on imbrique deux array_foreach donc @element ne peut pas faire appel à la valeur du premier array_foreach. On prend donc sa valeur dans la variable t with_variable('t',@element, -- pour chaque mot plus long que la longueur max array_foreach( -- on le découpe en autant de chaines que nécessaire de longueur max generate_series(1, ceil(length(@t)/@longueur)), substr(@t, (@element - 1) * @longueur + 1, @longueur) ) ), ' ' ) ) ), ' ' ), @longueur ) )
Dernière modification par p.jeremie (Mon 08 May 2023 11:08)
Hors ligne
#4 Tue 09 May 2023 12:09
- Yunali
- Participant occasionnel
- Date d'inscription: 24 Mar 2020
- Messages: 34
Re: QGIS/Atlas: Ajouter grand texte mise en page
Bonjour,
Merci pour vos retours rapides !
Santanna : non pas de soucis de taille de zone de texte, (je l'avais justement étendue de manière exagérée pour être sûre que ce ne soit pas ça).
Pour les options de la table attributaire, oui j'ai testé les différentes options. ("Activer le retour à la ligne après" ne convient pas car il faudrait que je retravaille chacun de mes 40 textes ; et j'ai testé les 2 options du paramètres "texte trop grand" mais rien n'a bougé...).
Jeremie : je viens de tester avec un geopackage, et ça marche ! (J'ai réexporté mon fichier d'origine qui était un shapefile, c'est bien le shp qui a du coincer).
Et du coup pas de problème de retour à la ligne, c'était avec la table attributaire que ça me posait soucis.
Ouf, un grand merci !
Hors ligne
#5 Tue 09 May 2023 13:07
- Vincent Vauchey
- Participant assidu
- Lieu: saint jean de braye
- Date d'inscription: 24 Jan 2006
- Messages: 288
Re: QGIS/Atlas: Ajouter grand texte mise en page
coucou
le shp à une limite de 250 caractères !!!!!
Vincent
Hors ligne