V článku o magickém
formuláři, který se v každém prohlížeči zobrazí zcela jinak, jsem se dopustil jedné nepřesnosti, když jsem autora tohoto svěžího softwarového dílka obvinil z neodůvodněného používání kodu CP1250.
Protože shodou okolností právě něco sám programuji v ReportLabu, přišel jsem na to, jak se nesprávně kodované znaky s diakritikou do výstupu dostaly: Formát PDF, dnes již informatický stařík
, předpokládá, že prohlížeč zná 14 standardních fontů a umí tyto fonty správně vyrenderovat, aniž by musely být v PDF souboru vnořeny (embedded); v době, kdy byl tento formát mlád, na počátku 90. let, to mělo smysl, neboť bylo třeba šetřit každým kilobytem, dnes se všechny použité fonty vnořují pravidelně a u formátu PDF/A je to dokonce povinné.
Potíž je v tom, že tyto povinné
fonty mají pouze 256 glyfů, a to v kodu Latin-1 (West European Character Set). Jestliže tedy někdo použije jeden z těchto standardních fontů pro text obsahující české znaky, aniž by font do PDF souboru dodal, výsledkem bude nesprávná representace dat.
V daném případě autor předepsal pro své texty font Arial (jenž mezi standardní čtrnáctku nepatří). Adobe Acrobat ve Windows tento font našel a použil (což nelze hodnotit z hlediska kompatibility jako právě košer
řešení, ale je v souladu s filosofií Windows zatěžovat uživatele systémovými problémy co nejméně), Adobe Reader v Linuxu ho nahradil tečkami a prohlížeč Evince vyřešil situaci tak, že místo Arialu použil standardní typeface Helvetica, což ale způsobilo, že text v UTF-8 renderoval chybně, pomocí 256 znaků z Latin-1.
Tolik tedy na upřesnění.
Důležité upozornění!
Policie České republiky a šéfcensor Ústavu pro studium totalitních režimů Jaroslav Čvančara varují: citovat jakékoli texty z tohoto blogu způsobuje vážné risiko trestního stíhání! Četba na vlastní nebezpečí!
Jak je to s kompatibilitou formátu PDF
- Autor: Tomáš Pecina
- Kategorie: Počítače
- Počet zobrazení: 1598
Číst dále...