Hlavní obsah

Soubor PDF se prozradí prvními pěti znaky %PDF-. Přípona .pdf sama formát neurčuje

Foto: Pexels

Název souboru je jen cedulka. Skutečný PDF má uvnitř vlastní hlavičku: znaky %PDF- a verzi. V hexu začíná 25 50 44 46 2D.

Článek

Soubor jménem faktura.pdf vypadá jako PDF už podle názvu. Jenže přípona je v podstatě cedulka, kterou používá operační systém a aplikace jako nápovědu. Když přejmenuji obrázek z fotka.jpg na faktura.pdf, z obrázku se žádným kouzlem PDF nestane.

Samotný formát má vlastní identitu uvnitř souboru. Standard PDF říká, že jeho hlavička začíná pěti znaky %PDF- a pokračuje číslem verze. To je jeden z klasických příkladů takzvaného file signature neboli „magic bytes“: několik prvních bajtů napoví, jaký typ dat ve skutečnosti čteme.

Pět znaků, které vypadají v hexu úplně jinak

V textové podobě může začátek souboru vypadat například takto: %PDF-1.7. Když se na stejné bajty podíváme v šestnáctkové soustavě, dostaneme 25 50 44 46 2D 31 2E 37. Prvních pět hodnot odpovídá znakům %, P, D, F a -.

RFC pro internetový typ application/pdf uvádí stejný rozpoznávací znak: všechny PDF soubory začínají řetězcem %PDF- následovaným verzí, například %PDF-1.7 nebo %PDF-2.0. Přípona .pdf je samostatná věc — běžná konvence názvu, ne samotná struktura dat.

Přípona, MIME typ a obsah jsou tři různé vrstvy

Přípona je část názvu souboru. MIME typ je informace, kterou může webový server nebo jiný systém připojit k datům, například application/pdf. A pak existuje samotný obsah souboru. V ideálním světě si všechny tři vrstvy odpovídají, ale technicky to není totéž.

Proto mohou programy při rozpoznávání formátu kontrolovat víc než jen název. Když soubor nemá příponu, ale uvnitř má validní PDF strukturu, pořád může být PDF. A naopak soubor s příponou .pdf, který uvnitř začíná jako JPEG, není skutečným PDF jen proto, že tak končí jeho jméno.

Ani správných pět znaků není razítko bezpečnosti

Tady je důležitá brzda. Magic bytes jsou pomůcka pro identifikaci, ne bezpečnostní certifikát. To, že soubor začíná správnou hlavičkou, samo o sobě neznamená, že je celý dokument validní, nepoškozený nebo bezpečný. PDF je složitý kontejner s objekty, fonty, obrázky, odkazy a další strukturou, kterou musí čtečka dál zpracovat.

Stejně tak není rozumné používat znalost hlavičky jako návod k obcházení filtrů. Praktická pointa je opačná: systémy nemají slepě věřit názvu souboru a při validaci typu mají zkoumat skutečný obsah.

Proč může číslo verze v hlavičce trochu klamat

PDF má ještě jednu zajímavost. Starší specifikace uváděla v hlavičce verze od 1.0 do 1.7. Od PDF 1.4 ale může dokument v katalogu obsahovat položku Version, která deklarovanou verzi z hlavičky přepíše. Takže %PDF-1.4 na začátku nemusí být poslední slovo o schopnostech konkrétního dokumentu.

Pro běžné rozpoznání formátu je však řetězec %PDF- pořád jeden z nejznámějších podpisů digitálních souborů. Podobné signatury mají ZIP archivy, obrázky PNG a mnoho dalších formátů.

Název souboru je pro člověka, hlavička pro software

Přípony vznikly jako praktický způsob, jak člověku i systému naznačit, co se souborem dělat. Hlavička uvnitř je ale mnohem blíž skutečné identitě dat. Stačí přejmenovat soubor a přípona se změní během sekundy. První bajty zůstanou stejné.

Takže až příště uvidíte dokument.pdf, můžete si za názvem představit ještě druhou, méně viditelnou cedulku. Pokud jde skutečně o PDF, uvnitř na začátku sedí pět znaků: %PDF-. A ty se přejmenováním ve Windows nepřepíšou.

Zdroje

Máte na tohle téma jiný názor? Napište o něm vlastní článek.

Texty jsou tvořeny uživateli a nepodléhají procesu korektury. Pokud najdete chybu nebo nepřesnost, prosíme, pošlete nám ji na medium.chyby@firma.seznam.cz.

Související témata:

Sdílejte s lidmi své příběhy

Stačí mít účet na Seznamu a můžete začít publikovat svůj obsah. To nejlepší se může zobrazit i na hlavní stránce Seznam.cz