Autor | Zpráva | ||
---|---|---|---|
TanTan Profil * |
#1 · Zasláno: 27. 11. 2006, 08:35:09
Zdravím všetkých,
neviete mi niekto poradiť ako spojazdniť diakritiku v FPDF? Ešte s tým len začínam, ale vyzerá to zaujímavo. Len tá diakritika... niektoré znaky zobrazí v pohode, ale také "ľ" alebo "ň" tak to teda nie :( Skúšal som hľadať aj na tomto fóre, či to niekto už neriešil, ale našiel som iba nevyriešené otázky... |
||
Bubák Profil |
#2 · Zasláno: 27. 11. 2006, 10:17:34
|
||
TanTan Profil * |
#3 · Zasláno: 28. 11. 2006, 09:09:21
OK, tak som to poriešil(návod bol aj priamo na stránke FPDF). Dík za radu. A len kvôli tomu, aby bol postup aj na tomto fóre:
1. Z klasického fontu (súbor typu *.ttf) je potrebné vygenerovať súbor *.afm. To sa dá spraviť pomocou utilitky, ktorú si môžete stiahnúť priamo zo stránky FPDF. príkaz na vykonanie konverzie je potom (príklad zo stránky FPDF): generovanie pre font Comic Sans MS Regular: ttf2pt1 -a c:\windows\fonts\comic.ttf comic (Toto nám vyhodí 2 súbory ale nás zaujíma iba *.afm - vytvorí ich na mieste odkiaľ ste zadali príkaz) 2. Je potrebné vygenerovať definičný súbor *.php, čo spravíme s pomocným php scriptom: postup zo stránky FPDF: MakeFont(string fontfile, string afmfile [, string enc [, array patch [, string type]]]) fontfile: cesta k .ttf alebo .pfb súboru. afmfile cesta k .afm súboru. enc Aké kódovanie sa má použiť. Ak nič nezadáte tak to bude: cp1252. (zadajte cp1250) patch Metóda kódovania. (Kľudne nechajte prázdne. Ja som to tak spravil a išlo. A je to tak aj defaultne). type Typ fontu (TrueType alebo Type1). Defaultná hodnota: TrueType. (ja som nechal prázdne) Ja som si spravil 2 sciptíky, ktoré som umiestnil do "fpdf/font/novefonty" (súbory *.ttf som dal do "fpdf/font/skfonty/ttf" a súbory *.afm som dal do "fpdf/font/skfonty/afm"): skript č.1 (novinka.php): <?php echo" <html><head><title>Pridavanie novych fontov</TITLE> <META http-equiv=Content-Type content=\"text/html; charset=windows-1250\"> </head> <body><center> Vyber si z fontov: <br /><br /> <form action=\"novyfont.php\" method=\"post\"> <table border=1> <tr><td>vyber</td><td>font:</td>"; $ttf="../skfonty/ttf/"; $smerttf=opendir($ttf); $afm="../skfonty/afm/"; $smerafm=opendir($afm); $php="../novefonty/"; $smerphp=opendir("$pdf"); while($subor=readdir($smerttf)) { $pripona=strstr($subor,'.'); if($pripona==".ttf") { $suborafm=str_replace(".ttf",".afm",$subor); $suborphp=str_replace(".ttf",".php",$subor); if(file_exists($afm.$suborafm) && !file_exists($php.$suborphp)) echo"<tr> <td><input type=\"radio\" name=\"font\" value=\"".$subor."\"></td> <td>".$subor."</td>"; } } echo" </table> <input type=\"submit\" value=\"Nahraj font\"> </form></center></body></html>"; ?> skipt č2(novyfont.php): <?php $ttfpismo="../skfonty/ttf/".$_POST["font"]; $afm=str_replace(".ttf",".afm",$_POST['font']); $afmpismo="../skfonty/afm/".$afm; $z=str_replace(".ttf",".z",$_POST['font']); require('../makefont/makefont.php'); makefont($ttfpismo,$afmpismo,'cp1250'); echo"<br /><a href=\"novinka.php\">naspat k vyberu fontov</a>"; ?> 3. No teraz máme dva nové súbory nejakyfont.php a nejakyfont.z. Tie treba nakopírovať do "fpdf/font" 4. Môžete ich začať používať, ale v skripte, kde ich chcete použiť treba ešte pridať riadok: $pdf->AddFont('vas_font','','vas_font.php'); Dúfam, že som to napísal správne :) |
||
Časová prodleva: 4 měsíce
|
|||
Korči Profil * |
#4 · Zasláno: 22. 3. 2007, 09:30:09
Díky moc Tantane za vyčerpávající výklad, ale jednak se z toho převodu fontů nevidim a druhak je na webguru krásnej odkaz na údajně připravený fonty. Problém je, že mi to nefunguje. Něco to sice dělá (např. to ukáže "č" a "ř"), ale o funkčnosti neni řeč ("š", "ž" a určitě i další nejdou). Už mě taky napadlo, že tydle fonty jsou ve windowsáckým kódování a já jedu v linuxu a v ISO.
Prosím prosím, nemáte pro mě někdo náznak rady? Budu vděčen za cokoliv. Díky. |
||
Časová prodleva: 6 měsíců
|
|||
pekiinoo Profil * |
#5 · Zasláno: 12. 9. 2007, 21:23:23
Mohol by mi niekto pomoc s diakritikou v fpdf vo vtiger crm 5.0.3
|
||
Časová prodleva: 16 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0