Co je vlastně PDF a proč z něj nejde vždy zkopírovat text
PDF je seznam vykreslovacích instrukcí. Říká, ať se tenhle glyf umístí na tuhle souřadnici v tomhle fontu a v téhle velikosti, pak ať se kurzor posune sem a nakreslí se další. Neříká, že tohle je nadpis, tohle odstavec a tenhle sloupec jde před tamten. Všechno, co čtečka o struktuře stránky zdánlivě ví, bylo dodatečně zrekonstruováno měřením mezer mezi značkami, což vysvětluje většinu toho, co je na PDF frustrující.
Co PDF ve skutečnosti ukládá
Text na stránce žije v obsahovém proudu, což je krátká posloupnost operátorů:
BT
/F1 11 Tf
72 708 Td
[(In) -18 (v) 22 (oice)] TJ
180 0 Td
(2026-08-25) Tj
ET
Tf volí font a velikost, Td posouvá textový kurzor a TJ kreslí glyfy s kerningovými posuny mezi nimi. Všimněte si, co chybí: nikde ani jeden znak mezery. Mezera před datem je skok o 180 jednotek a extraktor musí rozhodnout, jestli je každý skok mezera, tabulátor, hranice sloupce, nebo vůbec nic. Prahová hodnota o kousek vedle vám dá Invoice2026-08-25 nebo I n v o i c e.
Stejný problém má pořadí čtení: glyfy vycházejí v pořadí, v jakém byly nakresleny. Dvousloupcová sazba často kreslí levý sloupec shora dolů a pak pravý, a v tom případě kopírování funguje; pokud generátor kreslil řádek po řádku přes celý list, kopírování sloupce proplete do nesmyslu.
Jak odlišit textové PDF od skenu
Naskenovaný dokument neobsahuje žádný text: je to fotografie stránky zabalená do PDF. Optické rozpoznávání znaků přidá přes obrázek neviditelnou textovou vrstvu, díky které se v souboru dá vyhledávat, ale ta vrstva je odhad, takže se její chyby projeví jako neúspěšná hledání a zkomolené kopie.
| Zkouška | Textové PDF | Naskenované PDF |
|---|---|---|
| Označit slovo | Zvýrazňuje se znak po znaku | Neoznačí se nic, nebo celá stránka |
| Přiblížit na 400 % | Písmena zůstávají ostrá | Písmena změknou nebo zkostkovatí |
| Velikost na stránku | Často 20 až 100 KB | Často 300 KB až několik MB |
| Extract Images from PDF | Vrátí skutečné obrázky, nebo nic | Vrátí jeden celostránkový obrázek na stránku |
Fonty, vkládání a podmnožiny
Font je buď vložený, což znamená, že program fontu sedí uvnitř souboru, nebo odkazovaný jménem a metrikami, takže si prohlížeč najde něco podobného na stroji, který ho zobrazuje. Odkazované fonty jsou důvod, proč dokument vypadá správně tam, kde vznikl, a špatně jinde: náhrada má jiné šířky znaků, takže se řádky přesázejí, tabulky přetečou a jednostránkový dopis se změní na dvoustránkový.
Vložené fonty jsou téměř vždy zúžené na podmnožinu. Zahrnou se jen použité glyfy a často se přečíslují, takže glyf pro A může sedět na kódu 3. Mapování zpět na skutečné znaky žije v samostatné tabulce ToUnicode, a když chybí nebo je špatné, stránka se vykreslí bezvadně, zatímco zkopírovaný text dorazí jako nesmysl, protože dostáváte vnitřní kódy glyfů, ne znaky. Opětovné uložení to nespraví; cesty ven jsou zdrojový dokument nebo rozpoznávání nad vykreslenými stránkami.
Velikost stránky, rámce a rotace
Souřadnice jsou v bodech, 72 na palec, a každá stránka nese několik obdélníků. MediaBox je celý list; CropBox je oblast, která se skutečně zobrazí a může být menší.
| Formát | Body | Milimetry |
|---|---|---|
| A4 | 595 x 842 | 210 x 297 |
| Letter | 612 x 792 | 216 x 279 |
| Legal | 612 x 1008 | 216 x 356 |
A4 a Letter vypadají na obrazovce stejně a na papíře se liší, takže sloučení evropské zprávy s americkou dá stránky, které se ve velikosti střídají.
Každá stránka navíc nese příznak rotace 0, 90, 180 nebo 270 stupňů, takže obsah uložený na boku se dá zobrazit vzpřímeně. Rotate PDF tento příznak nastaví, místo aby cokoli překresloval, což je okamžité a bezeztrátové, jenže souřadnice pod ním se nemění: nástroj, který příznak ignoruje, vytáhne text na boku a sloučení stránek s různými příznaky dá dokument, který vypadá jednotně, zatímco jeho obsah leží v několika orientacích.
Slučování, dělení a části, které se rozbijí
Stránky žijí ve stromu stránek. Merge PDF zkopíruje objekty stránek a všechno, na co odkazují, do jednoho souboru a tento strom postaví znovu; Split PDF si z něj vezme větev. Stránky projdou nedotčené, to, co je připojené k dokumentu, ne vždy.
- Záložky jsou samostatná osnova ukazující na objekty stránek. Mnoho slučovacích nástrojů ji zahodí celou a dělení zanechá položky mířící na stránky, které už tam nejsou.
- Formulářová pole se pojmenovávají na úrovni dokumentu, ne stránky, takže sloučení dvou kopií jednoho formuláře dá dvě pole zvaná
name, se kterými mnoho prohlížečů zachází jako s jedním polem se sdílenou hodnotou: vyplnění jednoho vyplní druhé. Nejdřív je slijte nebo přejmenujte. - Anotace, jako jsou odkazy a komentáře, jedou spolu se svými stránkami, ale vnitřní odkaz, jehož cílová stránka při dělení vypadla, nemá kam vést.
Sloučený soubor bývá často větší než jeho části, protože se duplikují sdílené prostředky: čtyři zdroje, z nichž každý vložil podmnožinu téhož fontu, dají čtyři podmnožiny plus čtyři barevné profily a čtyři bloky metadat. Může také vyjít menší, protože přepis zahodí nepoužité objekty a historii ukládání: dokument uložený třicetkrát v sobě nese připojenou každou dřívější revizi.
Hesla, oprávnění a tagy
Existují dva druhy hesla a nejsou srovnatelné. Uživatelské heslo je potřeba k otevření dokumentu: obsah je skutečně zašifrovaný klíčem z něj odvozeným, takže bez něj není co číst. Moderní soubory používají AES-256, hodně staré 40bitovou RC4, která je slabá.
Vlastnické heslo nastavuje příznaky oprávnění, jako je zákaz tisku, kopírování a úprav. Soubor je pořád zašifrovaný, ale klíčem, který si každý prohlížeč odvodí sám, protože uživatelské heslo je prázdné. Ty příznaky jsou prosba, kterou některé prohlížeče respektují a jiné ignorují: pokud se soubor otevře bez dotazu, jsou jeho omezení jen doporučující, ať už dialog s vlastnostmi říká cokoli.
Tagování je jiná vrstva: nepovinný strom struktury, který označuje nadpisy, seznamy, buňky tabulek a popisy obrázků a fixuje pořadí čtení. Odečítač obrazovky na tagovaném PDF dokument čte; na netagovaném hádá ze souřadnic a vyrábí stejně zpřeházený výsledek jako kopírování a vkládání. Skeny jsou z definice netagované, rozpoznávání přidá text, ale ne strukturu, a výstup z Images to PDF nebo PDF to Images nemá ani jedno.
Kde je velikost a co prohlížeč unese
Velikost souboru tvoří skoro vždy obrázky. Stránka A4 potřebuje zhruba 1240 krát 1754 pixelů při 150 dpi a 2480 krát 3508 při 300 dpi, takže fotografie vložená ve dvanácti megapixelech nese mnohem víc dat, než dokáže tisk využít, a snížení rozlišení je jediná změna, která dokument spolehlivě zmenší. Opětovné uložení čistě textového PDF přinese jen velmi málo, protože jeho obsahové proudy už komprimované jsou; když je nějaké nečekaně velké, podívejte se na vložené fonty, historii ukládání nebo přílohy.
Všechno tohle se odehrává lokálně v prohlížeči, takže se nic nenahrává a limitem je paměť, ne velikost souboru. Drahou částí je vykreslování: stránka A4 při čtyřnásobném měřítku má asi 2380 krát 3368 pixelů, což je zhruba 32 MB nekomprimované bitmapy na jednu stránku, takže padesát stránek v tomto měřítku vyčerpá kartu prohlížeče dávno předtím, než začnou dělat potíže stroji. Velmi velký dokument nejdřív rozdělte a pak pracujte po dávkách.