© 2013 All rights reserved.
8

FPdf: jak na české znaky

Jak jednoduše používat české znaky v knihovně FPdf pro generování pdf soborů.

Knihovna FPdf je asi nejznámější a nejlepší knihovna pro generování PDF souborů pomocí PHP. Tato knihovna je volně ke stažení na adrese fpdf.org.

Postup tady popsaný je dostupný i v dokumentaci knihovny, bohužel pouze anglicky, a asi i proto narážím dost často na tuto otázku na diskusních fórech.

Po stažení archivu z webu FPDF dostanete samotnou knihovnu jako soubor fpdf.php a navíc se ve staženém archivu nachází adresář font.

Adresář font obsahuje několik základních písem, které je možné pro generované PDF používat a přepínat se mezi nimi.

Samozřejmě není myšleno na všechny znaky a ani jeden z obsažených fontů neobsahuje znaky české abecedy. Pro podporu českých znaků je nutné si vygenerovat vlastní písmo.

Generovat vlastní písmo můžete přímo pomocí přiložené třídy MakeFont, nebo jej vygenerovat na internetu například na adrese fpdf.fruit-lab.de (tato, druhá, možnost je jednodušší).

Konvertor je schopný vygenerovat písmo použitelné pro FPDF knihovnu z jakéhokoli TTF písma. TTF písma jsou volně ke stažení na internetu nebo například v adresáři /windows/fonts (nevím jak je to s právy písem ve Windowsech).

Do formuláře stačí potom vybrat cestu k písmu na disku a vybrat správné kódování, které budete dále pro generování dokumentu používat. Bohužel třída nenabízí práci s UTF-8.

Po vygenerování dostanete několik souborů, z nichž všechny jsou důležité a všechny budete, pro správné použití písma, potřebovat:

  • .php
  • .afm
  • .t1a
  • .z

Všechny tyto soubory je nutné stáhnout a nakopírovat do adresáře font. Nyní můžete toto písmo směle používat:

fpdf

Fpdf vs UTF-8

Bohužel knihovna FPdf nepodporuje UTF-8, a pro toto kódování budete muset řetězec převádět například pomocí Iconv:

Comments (8)

Mas pravdu, ovsem Fpdf je stale hodne vyuzivana a zend nemusi byt mozne pouzivat vzdy.
Ale jinak souhlasim

Dost dobre nevim jak jsi myslel, ze neni mozne pouzivat Zend vzdy? ZF je neinvazivni, je mozne pouzit pouze a jen Zend_Pdf… do budoucna bude vyvijen a nebude zastaravat jako FPDF

Ano, to je zbozne prani ZF fanatiku, Zend vzdy, vsude a pokud mozno na veky.

Zend_Pdf má hlavně jednu nevýhodu neobsahuje žádný třídy pro práci s tabulkama nebo něco na způsob cellů v fpdf, nedokáže počítat délky textů, automatické vytváření stránek když mi má objekt(text) přetékat a prostě spoustu věcí si tam člověk musí udělat sám (což momentálně v musím udělat a jestli to půjde tak to vydám i pod nějakou volnou licencí :))

Podle Vašeho návodu se mi konečně podařilo dostat do fPDF češtinu, bohužel všechna písmena jsou nalepená vedle sebe, některé širší písmena se i překrývají (vytáhnul jsem Times Roman a Helveticu z win Vista).
Pravděpodobně bude chyba ve vygenerovaném písmu pro fPDF (fpdf.fruit-lab.de) – mohl by mi někdo poradit, jak tento problém odstranit?
Děkuji.

Dobry den,
pokud mate zajem, napiste mi na email, a ja vam poslu vygenerovane pismo vcetne ukazky pouziti.

Mam dojem ze tato knihovna neni jiz nadale vyvijena.Proto doporucuji pouzivat modul obsazeny v Zend frameworku s nazvem Zend_Pdf. umi pracovat s utf kodovanim, neni nutne nic generovat, jen pripojit soubor ttf s ceskymi znaky.

Martin

Jo, akorát problém je, že takhle vygenerované PDF má asi 0,5 MB, protože to tam strká celý font.

Takže nejlepší je asi stáhnout TFPDF a použít UTF-8 písmo.

Leave a Reply to zaachi Cancel Reply

About
Hi, i am programmer from the Czech Republic. I love web development (Ruby, Ruby on Rails, PHP, Nette) and iOS development (Objective-C, Cocoa).
To cooperate, here is my phone:
+420 608 836