Autor | Zpráva | ||
---|---|---|---|
ed11 Profil |
#1 · Zasláno: 29. 11. 2013, 23:04:33
Hezký večer přeju.
Mám formulář. A taky problémy s češtinou. Vložená formulářová data se mně po odeslání vkládají pomocí PHP skriptu a TCPDF knihovny do souboru PDF. Nicméně mám problém s vykreslením těchto znaků: ř,ť,č,ň,ď,ů,ě. Obrázek Když jsem hledal informace o tomto nedostatku, našel jsem mj. také Yuhůův text (asi v polovině stránky). Cituji: "Velmi častá chyba zobrazení způsobená absencí meta deklarace. Prohlížeč se domnívá, že je text v západoevropských jazycích (latin 1). Jsou postiženy znaky ě, č, ř, ď ť, ů a ň. Obzvlášť dobře se tato chyba rozpozná podle toho přeškrtnutého o namísto ř a zachováním š a ž. Některé anglické HTML editory běžně převádějí text tak, že vypadá jako by měl tuto chybu. Ve skutečnosti to podělávají, protože háčkované znaky nahrazují entitami (&něco;). Pak není pomoci, leda to (nejčastěji ručně) opravit. " Ruční opravování není v tomto případě ani možné... Přestože jsem našel několik návodů a TCPDF sama předkládá příklad k českému kódování, nepodařilo se mně tento problém opravit. Nejhorší je, že se v kódování nevyznám a možná dělám chybu hned na začátku v HTML souboru? -> <meta charset="windows-1250" />
Když ale vložím charset="utf-8", je to horší už v samotném HTML. Skript na generování PDF pak obsahuje toto: $pdf = new pdf('P', 'mm', 'A4', false, 'UTF-8', false); Možná taky dělám chybu ve výběru fontu: HTML (CSS) => @import url(http://fonts.googleapis.com/css?family=Open+Sans:400,700,800&subset=latin-ext,latin); SKRIPT => // nastaveni hlavniho fontu $pdf->SetFont('helvetica', '', 10, false, false, true); |
||
ed11 Profil |
#2 · Zasláno: 1. 12. 2013, 14:13:12
Svoje chyby jsem už objevil a kdyby někdo začínající měl stejný problém, ať dá echo.
|
||
Davex Profil |
#3 · Zasláno: 1. 12. 2013, 14:34:14
|
||
ed11 Profil |
Tak hlavně jsem začal používat Notepad++, který nevím proč jsem neobjevil už dávno.
V záložce formát jsem nastavil kódování UTF 8. Podle zvoleného DOCTYPE (v mém případě <!DOCTYPE html> jsem použil <meta charset="UTF-8" />
Ve skriptu s připojenou TCPDF knihovnou jsem musel změnit kódování v záložce formát UTF-8 bez BOM a $pdf = new MYPDF('P', 'mm', 'A4', true, 'UTF-8', false); při vytváření nového PDF dokumentu.
Potom už stačilo jen vybrat font s podporou českých znaků (TTF) a jede to, jak má. <meta charset="windows-1250" /> tím pádem nedoporučuju, použitím UTF-8 se vyhnete nejčastějším problémům s kódováním. ------------- Ještě doplním: V TCPDF se správně zobrazuje např. font dejavu sans |
||
Časová prodleva: 10 let
|
0