Vous appréciez mon travail ?
Je serais ravi de prendre un café !

Vous prenez du plaisir à lire mes articles ? Vous apprenez de nouvelles choses ? Je serais ravis que vous supportiez mon travail avec une petite participation

1 café Merci, vous financez ma dose quotidienne de théïne (oui, en vrai je ne bois pas de café).
5 cafés Génial, ça couvre mes frais de serveur mensuels.
10 cafés Fantastique, avec ça je peux investir dans du matériel et approfondir mes connaissances.
BazinGa's - Tips & tuto IT

Importez vos données QGIS dans Adobe Illustrator

Vous avez bossez sans relâche pour créer la plus belle des cartes dans QGIS mais le composeur d’impression est trop limité ? Aucun problème, il suffit d’exporter le rendu puis de l’importer dans Adobe Illustrator, le monde du graphisme s’ouvre alors à vous…

Bon dans la théorie ça parait facile mais en pratique ce n’est pas si évident que ça, surtout lorsque l’on souhaite faire un export vectoriel. Voici quelques astuces et surtout un petit script pour vous faciliter la tâche.

Export image

La façon la plus simple c’est d’exporter le rendu sous la forme d’une image raster : JPEG (avec perte de qualité) ou PNG (sans perte de qualité).

Une fois l’image importée dans Illustrator, il suffit de l’habiller comme bon vous semble.

Voici un exemple de rendu exporté puis mis en forme que j’ai pu réaliser (disponible sur le site de la mairie de Lucinges):

Alors QGIS est déjà très fort pour faire de la symbolisation mais parfois on a besoin d’un peu plus. Le problème avec les exports image, c’est qu’il n’est plus possible de modifier le style du rendu depuis Illustrator. Pour pouvoir le faire, il faut exporter les données sous la forme d’un fichier vecteur (SVG).

Export vectoriel

Export depuis QGIS

QGIS permet d’exporter les données affichée dans le composeur d’impression dans un format vectoriel interopérable : le SVG.

Pour cela il vous suffit de réaliser une mise en page puis de cliquer sur le bouton dédié :

Vous pouvez ensuite importer ce SVG dans votre projet Illustrator mais le résultat est difficilement exploitable du fait de l’organisation des calques et de l’ajout de nombreux groupes vides et objets transparents.

Les scripts d’automatisation

Nous l’avons vu, l’export produit par QGIS n’est pas terrible. Heureusement, Illustrator possède une fonctionnalité bien pratique : les scripts. Il s’agit d’un processus d’automatisation de tâches : par exemple importer des données ou encore nettoyer des calques. Les scripts peuvent être programmés dans plusieurs langages de programmation dont Microsoft Visual Basic, AppleScript, JavaScript et ExtendScript.

J’ai ainsi développé un petit script en JavaScript permettant de nettoyer l’export SVG issu de QGIS. Je me suis pour cela appuyé sur la documentation fournie par Adobe.

Voici un petit exemple du résultat produit depuis QGIS. Notez que le composer d’impression contient deux cartes et que le projet Illustrator possède deux imports (il y a donc des objets superposés que vous ne voyez pas).

Pour utiliser ce script, rien de plus simple, commencez par le récupérer (Import SVG from QGIS.jsx) depuis le projet GitHub associé.

Le script peut être lancé directement depuis le menu « Fichier » =>  » Scripts » => « Autres scripts » d’Illustrator mais si vous souhaitez l’installer pour qu’il apparaisse dans la liste des scripts disponibles, vous devez le placer dans le répertoire des scripts d’Adobe (emplacements sujet à changement selon votre installation) :

  • Pour tout le monde : C:\Program Files\Adobe\Adobe Illustrator 20xx\Presets\fr_FR\Scripts
  • Pour l’utilisateur : C:\Users\YOUR-USERNAME\AppData\Roaming\Adobe\Illustrator\Version X\fr_FR\Scripts

Lors du lancement du script, il vous sera demandé de choisir le fichier SVG à importer, celui-ci doit obligatoirement être un fichier issu d’un export QGIS depuis le composeur d’impression.

Vous devrez ensuite choisir si certains éléments transparents doivent être supprimés :

Quelques explications sur cette options : lors de l’export, QGIS ajoute de nombreux groupes contenant une sorte d’arrière-plan matérialisé par un objet surfacique sans contour et dont le remplissage est blanc ou noir et sans opacité. Ces groupes sont toujours situés après les groupes d’objets et ne contiennent qu’un seul objet. Ils sont donc relativement simple à identifier et à supprimer. Cependant, si vous constatez des erreurs de suppression, vous pouvez choisir, ici, de les conserver.

Les données sont ensuite importées dans un calque nommé « QGIS » (notez que plusieurs calques du même nom peuvent coexister) et structuré de la façon suivante (n’hésitez pas à jeter un œil aux images précédentes) :

  • Groupe : Nom de la carte
    • Groupe : Nom de la couche (Labels)
      Ensemble des éléments d’étiquetage de la couche
      • Groupe : Text
        Il s’agit des objets représentant les étiquettes (objet texte ou tracé selon le format d’export choisi dans QGIS).
        Groupe facultatif, uniquement si le groupe « Callouts » est présent.
      • Groupe : Callouts
        Groupe d’objets « ligne » reliant les étiquettes aux objets géométriques (il s’agit des connecteurs dans QGIS).
        Groupe facultatif, uniquement si les connecteurs ont été activé pour la couche considérée.
      • Liste des objets représentant les étiquettes
        Uniquement si les connecteurs n’ont pas été activé, alors le groupe « Text » intermédiaire n’est pas créé et les objets sont directement placés ici.
    • Groupe : Nom de la couche
      Ensemble des objets présents dans la couche et visibles dans la carte.

Notez les éléments suivants :

  • Les couches d’étiquettes sont toujours au dessus des couches d’objets.
  • Les différentes symbologies au sein d’une seule couche ne sont pas séparées en plusieurs calques : il faut donc dupliquer les couches dans QGIS et utiliser des styles différents pour pouvoir les différentier dans Illustrator.
  • Un composeur peut posséder plusieurs cartes, elles seront toutes exportées et séparées.
  • Aucun test n’a été fait sur les éléments autres que les cartes (légende, échelle, flèche du Nord, formé géométrique…)

Conseils

Quelques conseils :

  • Vous devez cocher l’option suivante lors de l’export : « Exporter les couches de la carte comme des groupes SVG » ce qui permet au script de réorganiser correctement les calques.
  • Vous pouvez utiliser l’option « Toujours exporter les textes en tant qu’objet » pour conserver la possibilité de modifier les propriétés des textes dans Illustrator.
  • Évitez les couches raster (pensez à les décocher avant l’export).
  • Les tailles des contours et des symboles doivent être paramétrés en point ou en millimètre pour être conservé dans Illustrator. Les taille en pixel ne sont pas conservées : elles sont probablement converties en point en tenant compte de la résolution définie dans le composeur.
  • Le style des contours (et des lignes) est conservé (jointure, extrémité, motif de pointillé…)
  • Pour les surfaces, les motifs de remplissage ne sont pas bien gérés par l’export QGIS : ils ne sont pas découpés selon l’emprise des objets et dépassent donc.
  • Pour les surfaces, le remplissage dégradé suivant la forme n’est pas supporté.
  • Pour les surfaces, les bordures sont gérées.

De manière générale, restez simple dans QGIS et réalisez vos « extravagances » directement dans Illustrator…


Cet article vous a plu ?

N'hésitez pas à le partager, il interessera surement certains de vos contacts.

Les thèmes suivants contiennent des articles en lien avec celui-ci, allez faire un tour :

JavaScriptProgrammationSIG illustratorqgissvgtuto

50%