The article PHP - tvorba PDF dokumentov s diakritikou is written by PaBi3
Vytvorit PDF dokument s diakritikou nie je velky problem, ked viete zvolit to spravne pismo a kodovanie. Pre tvorbu nepouzivam vstavanu PDF kniznicu ale iba skvelu PHP triedu – FPDF. Prinasa mnoho vyhod ako volba rozmerov, urcenie formatu stranky, odsadenia, zahlavie a spodok dokumentu, automaticke zalamovanie stranok a riadkov, centrovanie textu, podpora obrazkov JPEG a PNG, farby pre rozne elementy, hypertextove odkazy, TrueType, Type1 a podpora kodovani, kompresia dokumentu (vyzaduje Zlib kniznicu). Osobne si pre PDF volim pismo Trebuchet MS. Je mozne pouzit aj krajsie pismo, napr. Palatino Linotype ale treba mysliet aj na velkost dokumentu. S Trebuchet MS bude mat dokument nieco cez 300kB. S Palatino Linotype vyse 1,2MB. Postup osadenia TrueType pisma do PDF dokumentu je celkom dlhy proces. Najprv je potrebne z .ttf suboru vytvorit metricky subor .afm. Pomocou .afm suboru dalej vygenerovat definicny PHP subor. Poslednym krokom je prekodovanie vstupu napr. z UTF-8 (zvolite vase kodovanie vstupnych dat) do cp1250.
Tvorba metrickeho suboru Pre vytvorenie .afm suboru je nutne stiahnut si utilitu ttf2pt1. Pouzivatelia Windows ju stiahnu tu. Zapnite si prikazovy riadok a napiste nasledovne: ttf2pt1 -a c:\windows\fonts\trebuc.ttf trebuc ttf2pt1 -a c:\windows\fonts\trebucbd.ttf trebucbd ttf2pt1 -a c:\windows\fonts\trebucbi.ttf trebucbi ttf2pt1 -a c:\windows\fonts\trebucit.ttf trebucit Tvorba definicneho PHP suboru Pokial ste si este nestiahli FPDF, stiahnite ho. V zlozke font/makefont/ sa nachadza subor makefont.php, ktory vytvori definicny PHP subor funkciou MakeFont(). Vytvorte novy PHP subor s obsahom: <?phpinclude_once('font/makefont/makefont.php');MakeFont('c:\windows\fonts\trebuc.ttf','trebuc.afm','cp1250');MakeFont('c:\windows\fonts\trebucbd.ttf','trebucbd.afm','cp1250');MakeFont('c:\windows\fonts\trebucbi.ttf','trebucbi.afm','cp1250');MakeFont('c:\windows\fonts\trebucit.ttf','trebucit.afm','cp1250');?> Po ukonceni skriptu sa vyskytnu aj varovania o chybajucich znakoch. Ignorujte ich a vsimnite si radsej 8 novych suborov. 4 s koncovkou .z a dalsie 4 s koncovkou .php. Ich nazov sa zacina na trebuc… Vsetky nakopirujte do zlozky font/. Tvorba PDF dokumentu Davajte pozor na kodovanie skriptu. Ja pouzivam iba UTF-8, takze budem potrebovat PHP rozsirenie iconv, aby som mohol prekodovat vstup z UTF-8 do cp1250. <?phpdefine('FPDF_FONTPATH','font/');require('fpdf.php');// retazec, ktory ma byt v PDF dokumente$text = 'Verite, ze tento PDF dokument dokaze zobrazit zakladnu diakritiku: lsctzyaieuao';// prekodovat obsah do cp1250$text = iconv('UTF-8','CP1250',$text);// vytvorit novu instanciu FPDF$pdf = new FPDF();// pridat pisma$pdf->AddFont('trebuc','','trebuc.php');$pdf->AddFont('trebuc','B','trebucbd.php');$pdf->AddFont('trebuc','I','trebucit.php');$pdf->AddFont('trebuc','BI','trebucbi.php');// vytvorit PDF dokument$pdf->AddPage();$pdf->SetFont('trebuc','',11);$pdf->MultiCell(0,5,$text);$pdf->Output();?> Vysledok Windows XP (Adobe Reader) Fedora Core 6 (KPDF) Vysledny PDF dokument si stiahnete tu. PDF generovane na tejto stranke este nefunguju s diakritikou, ale pripravujem novu verziu PDF exportu. Priklad si mozete prezriet tu.
PHP - tvorba PDF dokumentov s diakritikou Návrat

PHP - tvorba PDF dokumentov s diakritikou