Když jsem se tady na blogu před 6 lety ptal, co byste chtěli zlepšit na linuxovém desktopu, podpora pro české znaky v PDF formulářích se opakovala často. Byla to jedna z věcí, na kterou jsme se na základě této zpětné vazby od uživatelů rozhodli zaměřit. Co jsem ale netušil, bylo, že nám to zabere skoro šest let.
U PDF formulářů je problém v tom, že samotný standard od klientů požaduje jen základní znakové sady, konkrétně StandardEncoding, MacRomanEncoding, WinAnsiEncoding, PDFDocEncoding a MacExpertEncoding. U nich se můžete spolehnout na to, že si s nimi poradí všechny prohlížeče PDF, protože je také specifikovaná skupina písem, která tyto znakové sady pokrývají a jsou u prohlížečů vyžadována. Jenže tyto znakové sady neobsahují všechny znaky české abecedy (a platí to i pro další jazyky, jejichž abeceda se ve větší míře odlišuje od anglické latinky). Standard PDF ještě připouští použití znakové sady RTF, která by stačila, ale ta už zase není všemi prohlížeči podporovaná.
Řešením, ke kterému se dobrala většina prohlížečů včetně Adobe Readeru, je vzít nějaké dostupné písmo, které pokrývá znaky, které jsou potřeba, a přibalit ho k dokumentu. Když se vyplněný formulář otevře někde jinde, použije se přibalené písmo a máte tak jistotu, že se formulář zobrazí správně. A aby se velikost dokumentu nezvětšila zbytečně moc, nepřikládá se celé písmo, ale jen znaky, které jsou v dokumentu použité.
A proč se to celé protáhlo na šest let? Implementace se ukázala jako celkem netriviální. Dvakrát se během toho změnil vývojář, který na dané věci pracoval. Někdy tuto věc odsunula na vedlejší kolej prioritnější věc. Jak se to natahovalo, docela dost času zabralo už jenom takto velkou věc portovat na novější verze poppleru. Vtipné je, že nakonec se nepoužila ani naše implementace, na které jsme celou tu dobu pracovali. Před rokem to vypadalo, že to bude ještě trvat, než to bude splňovat všechny požadavky na začlenění. Vážně jsem zvažoval, že to jako „nekonečný projekt“ odpískáme.
Nakonec se objevila jiná implementace, které se podařilo začlenit rychleji, potřebovala ale ještě některé věci dotáhnout, aby se dala pro vyplňování formulářů finálně používat. Naši implementaci jsme tedy minulý rok opustili a raději investovali čas do dotažení té druhé. To se povedlo v prosincové verzi 22.12. Fedory 37 používá poppler 22.08, takže aby tuhle podporu mohli naši uživatelé používat co nejdřív, backportovali jsme ji. Mezi aktualizacemi ve Fedoře 37 přistála minulý týden.
Nyní by všechny prohlížeče PDF postavené na poppleru (Evince, Okular,…) měly umět ve Fedoře 37 ukládat do formulářů také české znaky. Časem snad dojde také na port do poppleru v Red Hat Enterprise Linuxu. Trvalo to dlouho, ale je to tam. 🙂
Napsat komentář