Toto jsem našel na fórech ubuntu:
# gs -sDEVICE=pdfwrite -dCompatibilityLevel=<VERSION> -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
Právě jsem to otestoval a funguje to dobře, teď pošlu nějaký výstup.
[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
Hledání možností ghostscriptu místo slepého kopírování příkazů od ostatních, kteří také slepě kopírovali své příkazy (a tak dále), je dobře strávený čas. Například -dPDFSETTINGS=/screen
v odpovědi s nejvyšším hlasem (a mnoha dalších) sníží kvalitu vašeho pdf.
Z příručky Ghostscript:
-dPDFSETTINGS=configuration
Přednastavení "parametrů destilátoru"[...]Použití kteréhokoli z těchto přednastavení bude vyžadovat změnu vstupu, a jako takové může mít za následek horší kvalitu PDF (ve srovnání se vstupem), než prosté použití výchozích hodnot. „Nejlepší“ kvalita (kde nejlepší znamená nejblíže k původnímu vstupu) se získá tak, že tento parametr vůbec nenastavíte (nebo použijete /default).
Také užitečné možnosti jako -dNOPAUSE
jsou implicitně specifikovány -o
volba.
Chcete-li převést jakýkoli soubor PDF na verzi 1.4, použijte
gs -q -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -o out.pdf in.pdf
-q
slouží pouze k umlčení příkazu. Můžete jej vynechat, pokud chcete vidět varování (například na chybějící písma) a podobně.
Pozor:Ghostscript vás nebude informovat o neexistujících / nepodporovaných verzích, a to ani bez -q
. Pokud například zadáte -dCompatibilityLevel=1.9
(neexistuje pdf 1.9) dostanete pdf 2.0, ale ghostscript vám to neřekne. Nemohl jsem najít úplný seznam verzí podporovaných -dCompatibilityLevel=
. 1.0 se zdálo být nepodporované. 1,1 - 1,7 fungovalo. 2.0 také fungoval, ale vytvářel soubory PDF, které neodpovídaly standardu (ačkoli se zjevně zobrazovaly dobře).
Zapsanou verzi můžete zkontrolovat pomocí grep -oa '%PDF-...' out.pdf
.
Také jsem zjistil, že PDF/A lze vytvořit pouze pomocí -dPDFA
. Je smutné, že všechny tyto možnosti se nezdají být tak dobře zdokumentované nebo zdokumentované vůbec.