Encontré esto en los foros de ubuntu:
# gs -sDEVICE=pdfwrite -dCompatibilityLevel=<VERSION> -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
Acabo de probar esto y funciona bien, publicaré algunos resultados ahora.
[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
Buscar las opciones de ghostscript en lugar de copiar ciegamente los comandos de otros que también copiaron ciegamente sus comandos (y así sucesivamente) es tiempo bien invertido. Por ejemplo, el -dPDFSETTINGS=/screen
en la respuesta más votada (y muchas otras) degradará la calidad de su pdf.
Del manual de ghostscript:
-dPDFSETTINGS=configuration
Preestablece los "parámetros del destilador"[...] El uso de cualquiera de estos preajustes implicará alterar la entrada y, como tal, puede dar como resultado un PDF de peor calidad (en comparación con la entrada) que simplemente usar los valores predeterminados. La 'mejor' calidad (donde mejor significa lo más cercano a la entrada original) se obtiene al no configurar este parámetro en absoluto (o al usar /default).
Además, opciones útiles como -dNOPAUSE
están implícitamente especificados por el -o
opción.
Para convertir cualquier pdf a la versión 1.4 use
gs -q -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -o out.pdf in.pdf
El -q
sólo está ahí para silenciar el comando. Puede omitirlo si desea ver advertencias (por ejemplo, sobre fuentes faltantes), etc.
Cuidado:Ghostscript no le informará sobre versiones inexistentes o no compatibles, incluso sin -q
. Por ejemplo, si especifica -dCompatibilityLevel=1.9
(no hay pdf 1.9) obtienes un pdf 2.0 pero ghostscript no te lo dirá. No pude encontrar una lista completa de versiones compatibles con -dCompatibilityLevel=
. 1.0 parecía no ser compatible. 1.1 - 1.7 trabajado. 2.0 también funcionó, pero creó archivos PDF que no se ajustaban al estándar (aunque se mostraban bien en evidencia).
Puedes comprobar la versión escrita usando grep -oa '%PDF-...' out.pdf
.
Además, descubrí que PDF/A solo se puede crear usando -dPDFA
. Lamentablemente, todas estas opciones no parecen estar tan bien documentadas o documentadas en absoluto.