Ho trovato questo nei forum di Ubuntu :
# gs -sDEVICE=pdfwrite -dCompatibilityLevel=<VERSION> -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
L'ho appena testato e funziona bene, ora posterò un po' di output.
[14:08:41][email protected]:~/superuser # pdfinfo org_1-4.pdf
Title: CV 2009
Producer: Prince 7.0 alpha 16 (www.princexml.com)
Tagged: no
Pages: 3
Encrypted: no
Page size: 595 x 842 pts (A4)
File size: 51793 bytes
Optimized: no
PDF version: 1.4
[14:08:59][email protected]:~/superuser # gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.5 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=out_1.5.pdf org_1-4.pdf
[14:09:35][email protected]:~/superuser # pdfinfo out_1.5.pdf
Producer: GPL Ghostscript 8.64
CreationDate: Wed Aug 19 14:09:34 2009
ModDate: Wed Aug 19 14:09:34 2009
Tagged: no
Pages: 3
Encrypted: no
Page size: 595 x 842 pts (A4)
File size: 60658 bytes
Optimized: no
PDF version: 1.5
Cercare le opzioni di ghostscript invece di copiare ciecamente i comandi da altri che hanno anche copiato ciecamente i loro comandi (e così via) è tempo ben speso. Ad esempio, il -dPDFSETTINGS=/screen
nella risposta più votata (e molte altre) degraderà la qualità del tuo pdf.
Dal manuale di ghostscript:
-dPDFSETTINGS=configuration
Preimposta i "parametri del distillatore"[...]L'utilizzo di uno qualsiasi di questi preset comporterà l'alterazione dell'input e come tale potrebbe comportare un PDF di qualità inferiore (rispetto all'input) rispetto al semplice utilizzo dei valori predefiniti. La qualità 'migliore' (dove migliore significa più vicina all'input originale) si ottiene non impostando affatto questo parametro (o utilizzando /default).
Inoltre, opzioni utili come -dNOPAUSE
sono implicitamente specificati dal -o
opzione.
Per convertire qualsiasi pdf alla versione 1.4 usa
gs -q -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -o out.pdf in.pdf
Il -q
è lì solo per mettere a tacere il comando. Puoi ometterlo se desideri visualizzare avvisi (ad esempio per caratteri mancanti) e così via.
Attenzione:Ghostscript non ti informerà sulle versioni inesistenti/non supportate, anche senza -q
. Ad esempio, se specifichi -dCompatibilityLevel=1.9
(non c'è pdf 1.9) ottieni un pdf 2.0 ma ghostscript non te lo dirà. Non sono riuscito a trovare un elenco completo delle versioni supportate da -dCompatibilityLevel=
. 1.0 sembrava non essere supportato. 1.1 - 1.7 ha funzionato. Anche la versione 2.0 funzionava, ma creava pdf non conformi allo standard (sebbene si vedessero bene in apparenza).
Puoi controllare la versione scritta usando grep -oa '%PDF-...' out.pdf
.
Inoltre, ho scoperto che PDF/A può essere creato solo utilizzando -dPDFA
. Purtroppo, tutte queste opzioni non sembrano essere così ben documentate o documentate affatto.