Convertire un PDF in PDF/A da riga di comando
Capita talvolta che per risolvere un'esigenza apparentemente minimale, occorra spendere un bel po' di tempo in ricerche e tentativi. Oggi è una di quelle volte! L'esigenza che ho trovato è apparentemente banale: convertire un normale PDF in PDF/A. Purtroppo farlo, a meno che non si voglia utilizzare uno dei mille servizi online, non è semplice.
Cos'è un PDF/A
Un PDF/A è una versione del formato di documento PDF (Portable Document Format) specificamente progettata per l'archiviazione a lungo termine di documenti digitali. La "A" infatti sta per "Archival". Questo formato garantisce che i documenti saranno riproducibili nello stesso modo in futuro, indipendentemente dal software utilizzato. Per assicurare questa riproducibilità, il PDF/A proibisce l'uso di elementi che potrebbero cambiare nel tempo, come font non incorporati, collegamenti esterni e contenuti criptati. Il PDF/A supporta anche la trasparenza delle immagini e altri aspetti grafici, ma tutto deve essere integrato nel file stesso. Questo lo rende particolarmente utile per archivi, biblioteche e organizzazioni che devono conservare documenti digitali in modo sicuro e accessibile nel tempo. E' anche il formato preferito per trasmettere documenti alle pubbliche amministrazioni.
Creare un file PDF/A
Creare file PDF/A è normalmente abbastanza semplice: la maggior parte dei software di editing, come ad esempio LibreOffice, o MS Word, hanno la possibilità di esportare il documento in formato PDF e hanno una opzione per creare un PDF/A. Ma quando si ha un documento PDF già creato, ad esempio a seguito di una scansione di un documento fisico, e vogliamo convertirlo in PDF/A le cose si complicano.
Da una parte esistono alcuni servizi gratuiti online che consentono la conversione da PDF a PDF/A, ma ovviamente questi servizi non possono garantire al 100% la privacy dei nostri documenti e ovviamente ci costringono a sorbirci un notevole carico di pubblicità.
Per fortuna tra le decine di migliaia di tool software disponibili sulle piattaforme unix-like (come Linux o FreeBSD) ce n'è uno che può aiutarci a risolvere questo problema: Ghostscript.
Ghostscript
Ghostscript è un interprete per i formati PostScript e PDF, sviluppato originariamente da L. Peter Deutsch. È un software open source che offre un'ampia gamma di funzionalità legate alla gestione, conversione e stampa di file PostScript (PS) e PDF, tra le quali:
Rendering e Stampa: È utilizzato come motore di rendering per visualizzare e stampare documenti PostScript e PDF. Molti sistemi di stampa utilizzano Ghostscript come backend per gestire i lavori di stampa. Creazione di PDF: Può generare PDF da file PostScript e viceversa. È particolarmente utile per la creazione di PDF/A per l'archiviazione a lungo termine. Ottimizzazione dei PDF: Ghostscript può essere utilizzato per ottimizzare i file PDF, riducendone le dimensioni e migliorandone la qualità per la stampa. Conversione di File: Ghostscript può convertire file PostScript e PDF in vari altri formati, inclusi formati raster (come PNG, JPEG) e formati vettoriali (come EPS, PDF/A).
Grazie alla sua natura a riga di comando, Ghostscript può essere facilmente integrato in script e processi automatizzati per gestire grandi volumi di documenti.
Installare Ghostscript Nelle maggiori distribuzioni Linux e sui vari flavour di BSD Ghostscript è incluso tra i pacchetti installabili con gli strumenti standard del sistema. Ad esempio su Linux Debian, Ubuntu o Mint si può installare semplicemente con :
$ sudo apt update
$ sudo apt install ghostscript
mentre su FreeBSD:
$ sudo pkg update
$ sudo pkg install ghostscript10
Una volta installato abbiamo a disposizione il comando gs
per invocarlo.
Con man gs
possiamo vedere la man page del comando e ci rendiamo subito conto che Ghostscript è un prodotto complesso che ci mette a disposizione decine e decine di opzioni.
Per chi vuole approfondire, a questo link è disponibile la documentazione completa di Ghostscript.
Trasformare un PDF in PDF/A
Per chi invece non ha l'opportunità di approfondire, ecco la riga di comando utile a trasformare un normale file PDF nominato input.pdf
in un PDF/A con nome output.pdf
:
$ gs -dPDFA -dBATCH -dNOPAUSE -dUseCIEColor -sProcessColorModel=DeviceCMYK -sDEVICE=pdfwrite -dPDFACompatibilityPolicy=1 -sOutputFile=output.pdf input.pdf