zdravím,
generuji PDF soubor s kodováním UTF-8, ale mám problém s generováním českýh znaků. Nevíte někdo, v čem by mohl být problém? Hledal jsem na Googlu i na různých fórech, ale nic jsem nenašel. Pouze zmínky o tom, že to nedělá u regulérní velikosti písma, pouze, když chce člověk psát tučně. Bohužel, ale potřebuji použít tučné písmo.
Díky moc
Fórum › PHP
Čeština v PDF souborech, generovaných pomocí FPDF
To DragonBehemont : no není to spíš tím fontem, než scriptem?
To hrach : To právě nevím... ale když se podívám třeba do times.php, tak tam diakritika je. Fakt nevím, čím by to mohlo být. V projektech používám UTF-8 a všiml jsem si, že FPDF je celé vytvořeno v CP-1250. Ale čeština mi nefunguje ani v souboru s kódováním CP-1250.
To DragonBehemont : nevim nic o zadnem times.php, kazdopadne nejlehci bude zjisit, zda ten font ten bold má...
To DragonBehemont : FPDF neumi UTF-8, jenom cpXXX a isoXXX. Mas to v manualu i vsech navodech. Pokud tahas data z DB, je potreba pouzit fci. "iconv" na prevod kodovani a mit spravne vygenerovane soubory fontu.
v tomto pripade bych se podival po jinem nastroji. v dnesni dobe je jiz utf standard a prace s prekodovanim mi prijde naprosto zbytecna... :)
To hrach : To muzes hledat. Existuje i varianta, ktera umi UTF8 (http://acko.net/node/56), ale stejne pracuje jako rozsireni FPDF. Takze si myslim, ze se zas narazi na jiny problemy, kdysi uz jsem se tim prohrabaval mam dojem.
Vsak staci prece odeslat hlavicky jako iso a prez iconv si string prevest do spravneho kodovani.
Ale v fpdf mi cestina bez problemu funguje i v utf8 i v tucnem pismu.
2Hrach: prace s utf v PHP urcite neni standart. Konkretne utf8 neni s PHP korektni.
No aby jsem to teda doplnil, samozrejme si musis vygenerovat vlastni font, muzes pouzit treba i nektere pismo z windows, dulezite je, aby obsahovalo diakritiku.
Font vygenerujes jednoduse, napriklad tady:
http://fpdf.fruit-lab.de/
Vyber font, kodovani nechej treba na cp1250 a dej convert font files.
Vygeneruje se ti vice souboru a vsechny si stahni a umisti do adresare font.
Potom kod pro generovani bude vypadat treba takto:
define('FPDF_FONTPATH','./font/');
header('Content-Type','text/html; charset=WINDOWS-1250');
require('./fpdf.php');
$pdf=new FPDF();
$pdf->Open();
$pdf->AddPage();
$pdf->AddFont('Jmeno_fontu', '', 'vygenerovany_font.php');
$pdf->SetFont('Jmeno_fontu','',16);
$pdf->Cell(40,10, iconv('UTF-8', 'WINDOWS-1250', "můjaa článek" ) );
$pdf->Output();
dulezite je zde uvedena metoda AddFont, ktera prida font.
jako treti parametr je odkaz na soubor .php s fontem.
Pri vypisu je pouzita funkce iconv pro prekodovani prave co cp1250.
Fontu si muzes vygenerovat i vice, jedno tucne pismo, jednu kurzivu, a podobne a libovolne je menit.
Takže... čeština mi nefunguje ani u souborů, které napíši v kódování CP1250. Ano, data tahám z databáze a v celém projektu pracuji s kódováním UTF-8. Zaachi -> ty pracuješ v fpdf s češtinou? Tak to je zvláštní, protože mě tam čeština vůbec nefunguje a nevím proč. Přitom mám projekt stažený přímo ze stránek http://www.fpdf.org a to celkem nedávno, takže bych měl snad mít aktuální verzi. A jinak, s UTF-8 pracuji již celkem dlouho a nezdá se mi, že by nebyl zrovna standart... ;-)
To zaachi : Vyzkouším... díky moc. Já používám přednastavený font Times
To zaachi : Pokud mas vygenerovany font v UTF8, tak ti fungovat muze. Ale v tom pripade by me zajimalo (a stopro nejsem sam), jak jsi ho dostal. Za postup bych byl vazne vdecny. I tvuj odkaz na generovani fontu (http://fpdf.fruit-lab.de/) nabizi pouze cpXXX a isoXXX varianty.
To zaachi : Podle tvého návodu se mi konečně podařilo dostat do fPDF i češtinu, bohužel všechna písmena jsou nalepená vedle sebe, některé širší písmena se i překrývají.
Pravděpodobně bude chyba ve vygenerovaném písmu pro fPDF (fpdf.fruit-lab.de) - mohl by mi někdo poradit, jak tento problém odstranit?
Děkuji.
Takže moje zkušenost:
Nejprve je třeba si uvědomit, že defaultní kódování pro FPDF je cp1252 - což mě začalo dělat docela problém.
Já jsem potřeboval cp1250, tak jsem to měl o trochu jednodušší. Použil jsem již zmiňovanej odkaz http://fpdf.fruit-lab.de/
a stáhl jsem si všechny čtyři soubory. Struktura toho php souboru byla trochu odlišná od již vygenerovaných jejich souborů, takže pouze copypastnout to pole mi k ničemu nevedlo.
Proto jsem si stáhl všechny čtyři soubory, z nějakýho šílenýho hashe je přejmenoval na test_arial_cp1250.* a potom v souboru test_arial_cp1250.php jsem upravil na posledním řádku akorát toto: $file='test_arial_cp1250.z';
nahraju na FTP do adresáře fonts a potom už jedu akorát
$pdf->AddFont('MyFont', '', 'test_arial_cp1250.php');
$pdf->SetFont('MyFont','',17);
variantu pro bold, italic a obojí si laskavý čtenář doplní sám :-)
Jj, taktéž doporučuju mPDF http://blog.zdenekvecera.cz/item/mpdf-snadny-export-html-stranek-do-pdf
To Jax99 : Ty fonty jdou udělat jen pro naše kódování a pak budou mít pár kB. Jestli má někdo zájem, tak zde http://blog.mynameisearl.cz/clanek/par-skolnich-veci/ v části Internetové technologie si může prohlédnout prezentaci, kde jsem ukázal jak se to vytváří. Taky tam jsou ukázky a asi tam je i pár hotových fontů...
Ten online konvertor je právě k ničemu, vygeneruje ti půlmegové fonty a výsledné PDF pak má taky půl mega, i když tam je třeba jen 1 slovo.
Když si to uděláš ručně, tak jsou ty PDF několikanásobně menší...
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Vyhledávání pomocí php v pdf souborech — založil Row
Uložení samotného .dft a jeho pdf pomocí makra — založil Talrock
Generovani Testu do PDF = vytvoreni PDF v Jave + for cyklus — založil AndrewLucas
Problém s fpdf — založil Paja2
FPDF - pozadí textu — založil Anonymní uživatel
Moderátoři diskuze