QGIS e la stampa in PDF layered (a strati)

Come ottenere un file PDF multi livello dal compositore di stampe di QGIS?

Fino ad oggi anche la versione 3.4.4 QGIS non crea livelli nei file pdf che vengono esportati, questo dipende, tra le altre cose, da tutte le proprietà del livello che rendono così grande QGIS per creare mappe e simboli eleganti. Non è semplice trasferire stili e colori trasparenti, nel formato pdf.

Ad oggi un metodo valido (probabilmente l’unico) è quello che Totò Fiandaca spiega nel suo blog pigrecoinfinito, ideato nel 2015 da magerlin e successivamente discusso qui gis.stackexchange.com. Vi consiglio di leggerlo per capire in dettaglio la procedura,  io mi limiterò semplicemente a riprodurlo ed inserire una semplice variante.

Il metodo è menzionato anche sul blog Svedese geosupportsystem.se  a conferma della bontà della procedura, qualora ce ne fosse bisogno.

La variante è dovuta al fatto che io sono un po distratto…e spesso qualche procedura, selezione o oggetto mi sfugge, soprattutto con layout complessi e ricchi di oggetti. In questi casi  devo fare il lavoro più volte 🙂 per non dimenticare, come dice il buon Andrea Borruso cit. “Questo post vale come nota personale, da rileggere quando mi servirà nuovamente

Dando per scontato che avete letto il post di Totò procediamo…

Dopo aver impostato il vostro layout di stampa (dimensione pagina) e utilizzato i vari layer sovrapposti, mappa, legenda, testi, loghi, ecc… esportate il tutto in SVG 

Come ci ricorda Totò…è fondamentale selezionare ‘Esporta layer come gruppi SVG ‘! nell’esportare il layout di QGIS in SVG

Dopo questa fase Totò utilizza subito Scribus un software Open Source che permette di salvare i file SVG  in PDF con i diversi livelli definiti.

Io invece faccio un ulteriore passaggio con InkScape, a causa della mia distrazione, per evitare di complicarmi la vita con le varie selezioni di gruppi e oggetti.

Aprite il file SVG  con InkScape e salvate una “copia con nome…” selezionare l’opzione “Livelli come SVG separati (. tar)“, otterrente un file compresso al cui interno ci saranno tanti file SVG quanti sono i livelli del file originale. Il file .tar si può decomprimere facilmente con tutte le utility  di compressione ed archiviazione come WinRAR, 7zip o similari. All’interno del file compresso i file sono nominati con il nome del layer, quindi troveremo, Layer 1.svg, Layer 2.svg, Layer 3.svg, ecc…

Il file SVG esportato da QGIS può essere aperto con InkScape che legge i vari livelli in automatico, però NON supporta la stampa in PDF layered!!! 🙁 al contrario Scribus supporta la stampa in PDF layered ma NON legge i vari livelli degli SVG!!! (Cit. Totò Fiandaca) Sarebbe tutto troppo facile 🙂

A questo punto dobbiamo decomprimere il file .tar e iniziare a lavorare con Scribus. Niente panico Scribus è semplice ed intuitivo, soprattutto se si ha familiarità con programmi di grafica vettoriale come InkScape, CorelDraW,  Adobe illustrator e Adobe InDesigne ecc…

Installiamo Scribus, apriamo un nuovo documento stando attenti alla dimensione della pagina. Nel mio caso avevo impostato in QGIS un layout di stampa in formato A4 orizzontale, di conseguenza anche in Scribus devo ricreare le stesse condizioni.

Il prossimo passo è aggiungere tanti nuovi livelli quanti sono i file SVG esportati da InkScape, nel mio caso ho aggiunto 18 nuovi layer.

Adesso diventa tutto semplice, per caricare i vari file SVG nei rispettivi layer basta usare il classico drag-and-drop, dal pannello Livelli, selezioniamo il livello corrispondente al nome del file SVG e trasciniamo li il nostro file. Tutti i file SVG hanno la dimensione A4 orizzontale (210×297), se non li avete separati e se è necessario, si possono centrare tutti sulla pagina, usando il pannello Allinea e distribuisci.

In alternativa al trascinamento possiamo usare la funzione Importa –> Carica file vettoriale dal menù File, sempre selezionando prima il layer corrispondente.

Caricati e ordinati tutti i layer, dobbiamo rinominare i layer con i nomi reali dei vari oggetti, dopo averlo fatto siamo pronti per stampare il nostro PDF con livelli.

Spostiamoci su File –> Esporta –> Salva come PDF

Nelle impostazioni delle opzioni di stampa fate attenzione alla “Compatibilità”, selezionate almeno PDF 1.5 (la versione PDF 1.4 o precendenti non supportano l’opzione livelli) e spuntate “Include livelli”, in caso contrario non otterrete il PDF multi livello.

Fatto…ecco il PDF multi layer, fidatevi è molto più semplice di quello che può sembrare 🙂

A questo punto vi state chiedendo perché ho fatto un ulteriore passaggio con InkScape e salvato il file SVG in  “Livelli come SVG separati (. tar)“?

La risposta è semplice, Scribus quando importa il file SVG non mostra l’elenco dei vari gruppi di oggetti nel pannello dei livelli (cosa che per esempio CorelDraw fa), quindi quando si sbloccano e si separano i gruppi , diventa molto complicato selezionare gli oggetti da spostare e riordinare. Se invece gruppi e oggetti sono suddivisi in singoli file, diventa molto semplice e immediato riordinare.

“In buona sostanza…”un singolo file SVG contiene solo un gruppo di oggetti, basta semplicemente caricarlo nel layer corrispondente.


Si può ottenere un PDF a livelli anche con CorelDraw, che legge i file SVG e i relativi livelli nativamente e supporta la stampa PDF layered

Vediamo come… Apriamo un nuovo documento, settiamo le dimensioni della pagina (in questo caso è sempre un A4 orizzontale) e con il drag–and–drop importiamo il file SVG ottenuto dal compositore di stampe diQGIS, dopo qualche secondo di attesa i layers del file SVG vengono caricati come gruppi di oggetti bloccati, come si vede dall’immagine. Come prima cosa occorre sbloccare i vari gruppi, aggiungere i nuovi livelli, separare i gruppi e spostare i gruppi nei relativi livelli, infine  rinominare i livelli secondo le proprie esigenze.

Riepilogo della procedura con CorelDraw

  1. Nuovo Documento;
  2. Impostare la dimensione della pagina corretta;
  3. Importare file SVG;
  4. Sbloccare i vari gruppi;
  5. Aggiungere i nuovi livelli;
  6. Separare i gruppi;
  7. Spostare i gruppi nei relativi livelli;
  8. Rinominare i livelli;
  9. Pubblica PDF.

ed infine stampare… File –> Pubblica PDF anche in questo caso ricordate di settare nelle preferenze di stampa almeno PDF 1.5

Fatto… per motivi di tempo non ho rinominato i layer in CorelDraw.

Tengo a precisare che QGIS, Scribus e InkScape sono software Open Source, e quindi a costo zero, diversamente CorelDraw è un software proprietario e quindi a pagamento, ma se siete in possesso di una licenza CorelDraw o una copia demo di 30 giorni (come nel mio caso per fare il test) potete usarla per ottenere il PDF layered. Lo stesso metodo può essere applicato con qualsiasi altro software di grafica vettoriale che supporti SVG e stampi in PDF layered. Ricordate che per far tutto questo è fondamentale selezionare ‘Esporta layer come gruppi SVG ‘ dal compositore di stampa di QGIS.

Grazie Totò Fiandaca per avermi fatto conoscere la procedura.

Link rapido all’articolo coseerobe.it/qgispdflayered


PDF layered NON sono supportati da QGIS solo per una questione di tempo e di interesse; se ci fossero molte richieste e qualche contributo, gli sviluppatori di QGIS lo implementerebbero facilmente. OpenJump lo supporta. (Cit. Totò Fiandaca)