Autor Zpráva
TanTan
Profil *
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
http://forum.pipni.cz/read.php?f=7&i=1479&t=1429
TanTan
Profil *
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 :)
Korči
Profil *
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.
pekiinoo
Profil *
Mohol by mi niekto pomoc s diakritikou v fpdf vo vtiger crm 5.0.3
Toto téma je uzamčeno. Odpověď nelze zaslat.