Proč se moje PDF téměř nezmenšilo?
Prohnal jsem PDF kompresorem a ze 4,1 MB se stalo 4,0 MB. Je ten nástroj rozbitý?
PDF je kartotéka
Myšlenkový model, který za tím zklamáním stojí, je představa, že PDF je obrázek dokumentu. Není. PDF je podle normy ISO 32000 kontejner očíslovaných objektů: stromy stránek, obsahové streamy plné vykreslovacích operátorů, vložené fontové programy, obrazové XObjekty, formulářová pole, anotace, osnovy a tabulka křížových odkazů, která říká, kde který objekt začíná.
Většina těch objektů je už zkomprimovaná. Obsahové streamy bývají zakódované metodou Flate, což je tentýž algoritmus, jaký používá ZIP. Vložené fotografie se obvykle ukládají jako DCT streamy, tedy jako data JPEG propuštěná beze změny. Když se tedy na PDF podívá univerzální kompresor, dívá se na krabici věcí, z nichž každá už jednou zkomprimovaná byla.
Než začnete cokoli komprimovat, zjistěte, kde jsou bajty
Nejužitečnější jediná diagnostika je vědět, jaký typ dokumentu máte, protože výsledek předpovídá téměř úplně.
| Typ dokumentu | Kde jsou bajty | Co zmůže strukturální uložení |
|---|---|---|
| Textová zpráva z textového editoru | Vložené fontové programy a malé obsahové streamy | Velmi málo; obsah je už tak hutný |
| Naskenované stránky | Jeden velký obrázek na stránku | Skoro nic, pokud se nesáhne na obrázky |
| Export prezentace | Vložené fotografie a barevné přechody | Něco, pokud se obrázky opakují napříč snímky |
| Technický výkres | Dlouhé vektorové obsahové streamy | Něco, novým zakódováním streamů a odstraněním nepoužitých objektů |
| Formulář s přílohami | Vložené soubory, JavaScript, slovníky anotací | Hodně, pokud jdou ty přídavky odstranit |
Co strukturální uložení skutečně odstraní
Strukturální uložení přepíše dokument, aniž by změnilo vzhled jediné stránky. Umí zahodit objekty, na které už nic neodkazuje a které se hromadí při každé inkrementální úpravě a uložení. Umí zkomprimovat tabulku křížových odkazů a sbalit malé objekty do objektových streamů. Umí zahodit metadata dokumentu, náhledy a historii úprav, kterou za sebou některé programy nechávají.
U dokumentu, který byl mnohokrát upraven a znovu uložen, to může být velká výhra. U dokumentu čistě jednou vyexportovaného z textového editoru není co sbírat: soubor už je blízko nejmenší podobě sebe sama a sto kilobajtů dolů ze čtyř megabajtů je přesně ten výsledek, který se dá čekat.
Proč se textový dokument brání
V textovém PDF tvoří velkou část souboru obvykle vložené fonty. Fontový program je kompaktní binární soubor s obrysy glyfů a hintovacími instrukcemi a je tam proto, že se dokument musí vykreslit stejně i na stroji, kde dané písmo nainstalované není. Nedá se zkomprimovat pryč, aniž byste ho dál zúžili na podmnožinu znaků nebo ho odstranili — a odstranění změní, jak stránka vypadá.
Samotný text je nepatrný. Sto stran prózy jsou před kompresí pár set kilobajtů znaků. Pokud je vaše textové PDF velké, hledejte spíš u fontů a u obrázků schovaných za textem — logo opakované v záhlaví, vodoznak na pozadí — než u slov.
Proč se sken sesype
Naskenovaná stránka je jedna velká fotografie kusu papíru, často pořízená ve 300 bodech na palec nebo víc. Stránka A4 ve 300 DPI má zhruba 2480 × 3508 pixelů — téměř devět milionů — a to u stránky, jejíž informační obsah je pár kilobajtů textu. Právě proto skeny na rasterizovanou kompresi reagují tak dramaticky: snížení rozlišení vykreslení a nové zakódování obrázků stránek zaútočí přesně na tu část souboru, která je skutečně velká.
A právě proto je ten režim destruktivní. Jakmile je ze stránky obrázek, prohledávatelná textová vrstva, odkazy, formulářová pole, anotace, tagovaná struktura pro přístupnost i případný digitální podpis jsou pryč. FileSlimmer proto rasterizaci nabízí jako samostatný, jasně označený režim s tímhle varováním, ne jako tiché náhradní řešení, když strukturální uložení zklame.
Proč vám nikdo nemůže slíbit číslo
Cílová velikost PDF je hledání v prostoru rozlišení vykreslení a kvality obrázků a to hledání má dno: pod určitým rozlišením přestane být text na skenu čitelný. Jestli konkrétní dokument nad tímhle dnem dosáhne konkrétního rozpočtu, závisí na počtu stran, na pokrytí barvou, na množství fotografického obsahu a na šumu skeneru. Dva dokumenty se stejným počtem stran můžou skončit na velmi odlišných velikostech.
Poctivé chování je zastavit se na dně a ohlásit, kde hledání skončilo, což je přesně to, co dělají cílové předvolby pro PDF ve FileSlimmeru. Nástroj, který vždycky trefí číslo, jaké jste napsali, buď o tom čísle lže, nebo kvůli němu ničí dokument.
Než začnete vinit nástroj
- Ověřte, jestli PDF není sken. Zkuste označit řádek textu: pokud kurzor nic neoznačí, každá stránka je obrázek.
- Porovnejte počet stran s velikostí. Soubor o 40 MB se třemi stranami je plný obrázků; soubor o 40 MB s 900 stranami může být úplně v pořádku.
- Ověřte, jestli není dokument zašifrovaný. Heslem chráněné PDF se nedá vůbec restrukturalizovat, dokud se neodemkne.
- Ověřte, jestli není podepsaný. Přepsání podepsaného dokumentu zneplatní podpis, a to je obvykle horší výsledek než velký soubor.
- Zamyslete se, co doopravdy potřebujete. Vytáhnout šest stran, které musíte poslat, často porazí kompresi všech devadesáti.
Nástroje k tomuto tématu
Zdroje
- ISO 32000-2 — Document management, Portable Document Format
- Adobe — PDF 32000-1:2008, the freely published PDF 1.7 specification
- PDF Association — ISO 32000 and the PDF standards family