Estrarre numero pagine da un PDF↵
Introduzione↵
Un utente di QGIS mi contatta e mi chiede come estrarre il numero di pagine di un PDF usando le espressioni di QGIS.
Funzione personalizzata
QGIS ha centinaia di espressioni, per quelle che mancano o per crearne di nuove è possibile aggiungere delle funzioni personalizzate usando PyQGIS
Installazione libreria↵
Con le librerie/moduli python è possibile fare quasi tutto, per il nostro scopo esiste una libreria dedicata che va installata perché non è tra le librerie standard usate in QGIS.
Per chi usasse l'installatore OSGeo4W Network installer, basta cercare pdf
(1) comparirà la libreria e selezionarla (2):
Funzione personalizzata↵
La funzione personalizzata è stata creata dall' amico (G. Fattori) che nel tempo libero soddisfa ogni mia richiesta (grazie mille).
# Korto19 2023
from qgis.core import *
from qgis.gui import *
from PyPDF2 import PdfReader
@qgsfunction(group='HfcQGIS',referenced_columns=[])
def Get_Pdf_N_Pages(pdfpath, *args, **kwargs):
"""
Restituisce il numero di pagine di un pdf dando il percorso
<h2>Example usage:</h2>
<ul>
<li>Get_Pdf_N_Pages(pdfpath)-> 3</li>
</ul>
"""
reader = PdfReader(str(pdfpath))
number_of_pages = len(reader.pages)
return number_of_pages
per usare lo script:
- salvarlo in *.py (oppure scaricalo da qui);
- spostare il file in
C:\Users\nomeUtente\AppData\Roaming\QGIS\QGIS3\profiles\default\python\expressions
- riavviare QGIS;
- troverete la funzione nel field calc nel gruppo HfcQGIS, che verrà creato automaticamente dopo lo spostamente del file.
l'attributo "link"
contiene i percorsi assoluti a dei PDF, sotto un esempio di tabella degli attributi:
NB: Quando popolate l'attributo link
, sotto windows, occorre usare \\
e non \
altrimenti vi restituirà errore!!!
esempio:
RIFERIMENTI↵
In questo stesso sito #HfcQGIS trovate decine di funzioni personalizzate nella sezione Custom
Un GROSSO grazie a Giulio Fattori, un utente QGIS e autore di molti plugin per QGIS