Autor Zpráva
Kalby
Profil
Dobrý den,
mám problém s češtinou při tvorbě pdf, zobrazují se mi čárky ale háčky nefungují :( zkoušel jsem kódování stránky UTF-8 i cp1250 ale nefuguje ani jedno.zkoušel jsem i převést kódování z cp1250 na ISO-8859-2 pomocí funkce iconv, ale stejnak to nepomohlo nevíte někdo jak na to? Jinak font požívám Arial, tady ještě ukázka kódu:


$pdf=new HTML2FPDF();
$pdf->AddPage();
$pdf->Image("images/logo.jpg",20,5,80,40, "","",true);
$pdf->SetFont('Arial','B',20);
$pdf->Text(120 ,20,"Ireality, s.r.o.");
$pdf->SetFont('');
$pdf->SetFont('Arial','B',13);
$pdf->Text(120 ,26,"Ústavní 413/18, 181 00 PRAHA 8 řřř");
$pdf->Text(120 ,32,"www.infoirealitypraha.cz");
$pdf->Text(120 ,38,"info@irealitypraha.cz");
$pdf->Text(120 ,44,"GSM: +420 773 544 544");
$pdf->Line(20, 47, 190,47);
$pdf->SetY(49);
$pdf->SetFont('');
$pdf->SetFont('times','B',18);
$pdf->Cell(190,10,$zaznam["NAZEV"],0,1,'C');
$pdf->SetFont('');
$pdf->SetFont('Arial','B',15);
$pdf->Cell(190,10,"Lokalita:".$zaznam["ULICE"].", ".iconv("cp1250", "ISO-8859-2", $zaznam["OKRES"])."-".iconv("cp1250", "ISO-8859-2", $zaznam["LC_NAZEV_SIDLO"]).", ".$psc,0,1,'C');

jinak proměné záznam, jsou z databáze, databáze má kódování cp1250,
díky všem za pomoc
Kalby
Profil
tak trošku změna, háčky pro normálně psaný text už funguje kódování stránky je cp1250, ale nefungujou mi háčky u dat vypsaných z databáze, přitom kódování databáze je taky cp1250 a používám i set_names, nevíte někdo jak to udělat?
nightfish
Profil
používám i set_names
myslíš SET NAMES (není tam žádné podtržítko)

kdyby nebyl problém v tomto, tak pošli celý relevantní kód, od připojení do databáze až po výpis do pdf
Kalby
Profil
jo jenom jsem to napsal spatne v tom problem nebyl tady posilam cely kod, ta stranka ma kodování cp1250, data v databazi mas kodovani cp1250_czech_cs

$db=mysql_connect($host, $user, $pass);
$set = mysql_query ("SET NAMES 'cp1250'");
mysql_select_db($datab);
$nova=$_GET["id"];
$vyber=mysql_query("select * from nabidky where ID='".$nova."'",$db)or die(mysql_error());
$zaznam=MySQL_Fetch_Array($vyber);


$pdf=new HTML2FPDF();
$pdf->AddPage();
//tvorba PDF
$pdf->Image("images/logo.jpg",20,5,80,40, "","",true);
$pdf->SetFont('Arial','B',20);
$pdf->Text(120 ,20,"Ireality, s.r.o.");
$pdf->SetFont('');
$pdf->SetFont('Arial','B',13);
$pdf->Text(120 ,26,"Ústavní 413/18, 181 00 PRAHA 8");
$pdf->Text(120 ,32,"www.infoirealitypraha.cz");
$pdf->Text(120 ,38,"info@irealitypraha.cz");
$pdf->Text(120 ,44,"GSM: +420 773 544 544");
$pdf->Line(20, 47, 190,47);
$pdf->SetY(49);
$pdf->SetFont('');
$pdf->SetFont('Arial','B',16);
$pdf->Cell(190,10,iconv("CP1250", "ISO-8859-2", $zaznam["NAZEV"]),0,1,'C');
$pdf->Output("sample.pdf");

možná jestli nebude problém v písmu. Zkoušel jsem pomocí AddFont přidat fonti times, ale napsalo mi error že je právě nastavena helvetica, a nevím jestli zrovna ta podporuje háčky
josef_stromsky
Profil
Právě řeším naprosto stejný problém. Tahám data z databáze v UTF8 a snažím se je jakkoliv dostat do PDF se správně zobrazenou diakritikou. Ale myslím, že problém bude jinde než v kódování dat. Nicméně to se dá jednoduše ověřit tak, že místo vypsání dat do PDF je zobrazíš normálně na stránce a zkontroluješ diakritiku.

Mě se data na stránce zobrazují správně jak přímo v UTF8, které používám v databázi a skriptech, tak i když ho překonvertuju ICONVem do windows-1250, cp1250, iso-8859-2 nebo čehokoliv jiného. Problém, bude zřejmě někde jinde.

Viděl bych to spíš na špatně vygenerované soubory fontů. Neměl jsem čas to zatím nějak studovat, ale zřejmě bude třeba použít funkce MakeFont ze souboru makefont.php a vygenerovat si vlastní definice středoevropských fontů. Ve fontech se moc nevyznám abych se přiznal, takže mě opravte, pokud je tohle blbost. V každém případě si myslím, že v kódování samotných dat problém nebude.
Kalby
Profil
no ja jsem právě sehnal i font se správným kódováním, funguje teda jen pro písmo které není tučné, ale háčky a čárky se zobrazujou v pohodě, ale problém je pořád u těch dat z databáze, zkoušel jsem snad už všechno ale nejde, už jsem celkem zoufalej :)
Kalby
Profil
tak už jsem to vyřešil, nevím proč ale musel jsem text z databáze převést z UTF-8 na CP1250, přitom by ta databáze měla bejt v CP1250, nevim divný hlavně že to ale funguje, jestli budeš chtít pošlu tě to písmo s kódováním CP1250, sice nefunguje pro tučný font ale regular jde v pohodě
josef_stromsky
Profil
Zkoušel jsi ty data, která dáváš do PDF vypsat normálně na stránku a zobrazit v prohlížeči. Zobrazuje se ti to i tam špatně. Btw. odkud máš ty správné fonty? Můžeš mi dát link nebo poslat na email. Já jsem zkoušel nějaké co jsem našel na webu, ale moc dobře to nedopalo :(. Máš k tomu i ty vygenerované PHP soubory pro fonty pro HTML2FPDF resp. pro FPDF? Chtěl bych je zkusit v tom mém skriptu, ať vím, jestli je chyba v nich.
djlj
Profil
josef_stromsky
Použij iconv.
Kalby
Profil
no nejdřív jsem si to zkusil vypsat na stránku to blblo tak jsem to pomocí iconv převed na CP1250 a pak už to šlo, ze začátku mi to blblo kvuli tomu pismu, hoď jsem mail pošlu ti ten vygenerovaný font, mám jen arial, jestli bude stačit
josef_stromsky
Profil
djlj
V kódování problém není, to se mi jinak zobrazuje správně. Problém je v těch fontech použitých při generováni PDF. ... pravděpodobně.


Kalby
Můj email je josef.stromsky(zavináč)gmail.com. Jak jsi se dostal k tomu fontu? Pokud jsi ho generoval pro FPDF sám, tak jaký byl postup. Já jsem to zkoušel dělat podle návodu na http://www.fpdf.org/en/tutorial/tuto7.htm
Kalby
Profil
no ja jsem ten font nekde stahnul, sice uz nevim kde ale fungoval, jinak zkousel sem si generovat vlastni ale to mi nejak neslo udelat, ale zkus pohledat na googlu, nekde by mel bejt i online generator staci zadat cestu k ttf fontu a vyhodi te to jak php soubor tak *.z soubor, jinak ty soubory posilam mailem
Kalby
Profil
tady je ten generator online, jeste pozn. : pokud budes zadavat cestu k tomu ttf souboru tak to nezkousne cestu c:/windows/fonts musis si nejdriv ten font nakopirovat nekam jinam ale jinak by to melo bejt ok, jinak poslal sem ti na mail arial, snad bude fungovat

http://fpdf.fruit-lab.de/

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0