Čeština v PDF souborech, generovaných pomocí FPDF – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Čeština v PDF souborech, generovaných pomocí FPDF – PHP – Fórum – Programujte.comČeština v PDF souborech, generovaných pomocí FPDF – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
DragonBehemont0
Super člen
28. 7. 2008   #1
-
0
-

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

Nahlásit jako SPAM
IP: 194.138.39.–
Nemusíte vědět vše, stačí jen, když víte, kde to najít, a jak to použít. Naučíte se to právě tím používáním ;-)
Reklama
Reklama
hrach
~ Redaktor
+1
Boss
28. 7. 2008   #2
-
0
-

To DragonBehemont : no není to spíš tím fontem, než scriptem?

Nahlásit jako SPAM
IP: 193.179.169.–
http://jan.skrasek.com@hrachcz – webdeveloper
DragonBehemont0
Super člen
29. 7. 2008   #3
-
0
-

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.

Nahlásit jako SPAM
IP: 194.138.39.–
Nemusíte vědět vše, stačí jen, když víte, kde to najít, a jak to použít. Naučíte se to právě tím používáním ;-)
hrach
~ Redaktor
+1
Boss
29. 7. 2008   #4
-
0
-

To DragonBehemont : nevim nic o zadnem times.php, kazdopadne nejlehci bude zjisit, zda ten font ten bold má...

Nahlásit jako SPAM
IP: 193.179.169.–
http://jan.skrasek.com@hrachcz – webdeveloper
Kralik
~ Anonymní uživatel
12 příspěvků
30. 7. 2008   #5
-
0
-

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.

Nahlásit jako SPAM
IP: 193.48.127.–
hrach
~ Redaktor
+1
Boss
30. 7. 2008   #6
-
0
-

v tomto pripade bych se podival po jinem nastroji. v dnesni dobe je jiz utf standard a prace s prekodovanim mi prijde naprosto zbytecna... :)

Nahlásit jako SPAM
IP: 193.179.169.–
http://jan.skrasek.com@hrachcz – webdeveloper
Kralik
~ Anonymní uživatel
12 příspěvků
30. 7. 2008   #7
-
0
-

Co se mne jeste HOOODNE osvedcilo, pridat SET NAMES do php souboru pro generovani PDF, pokud teda tahate data z DB.

Nahlásit jako SPAM
IP: 193.48.127.–
Kralik
~ Anonymní uživatel
12 příspěvků
30. 7. 2008   #8
-
0
-

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.

Nahlásit jako SPAM
IP: 193.48.127.–
zaachi0
Newbie
30. 7. 2008   #9
-
0
-

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.

Nahlásit jako SPAM
IP: 88.146.210.–
zaachi0
Newbie
30. 7. 2008   #10
-
0
-

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.

Nahlásit jako SPAM
IP: 88.146.210.–
DragonBehemont0
Super člen
30. 7. 2008   #11
-
0
-

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... ;-)

Nahlásit jako SPAM
IP: 213.194.252.–
Nemusíte vědět vše, stačí jen, když víte, kde to najít, a jak to použít. Naučíte se to právě tím používáním ;-)
DragonBehemont0
Super člen
30. 7. 2008   #12
-
0
-

To zaachi : Vyzkouším... díky moc. Já používám přednastavený font Times

Nahlásit jako SPAM
IP: 213.194.252.–
Nemusíte vědět vše, stačí jen, když víte, kde to najít, a jak to použít. Naučíte se to právě tím používáním ;-)
Kralik
~ Anonymní uživatel
12 příspěvků
30. 7. 2008   #13
-
0
-

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.

Nahlásit jako SPAM
IP: 193.48.127.–
Martin
~ Anonymní uživatel
1377 příspěvků
18. 8. 2008   #14
-
0
-

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.

Nahlásit jako SPAM
IP: 81.19.10.–
Johnny
~ Anonymní uživatel
23 příspěvků
13. 8. 2009   #15
-
0
-

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 :-)

Nahlásit jako SPAM
IP: 195.122.199.–
tom*p0
Stálý člen
13. 8. 2009   #16
-
0
-

Co takhle mPDF?

mPDF is a PHP class which generates PDF files from UTF-8 encoded HTML. It is based on FPDF, HTML2FPDF, and UFPDF, with a number of enhancements.

Nahlásit jako SPAM
IP: 83.240.120.–
Don't waste your time, or time will waste you.
Zdeny
~ Korektor
0
Grafoman
19. 8. 2009   #17
-
0
-
Nahlásit jako SPAM
IP: 89.102.10.–
www.devtea.cz | zdenekvecera.cz | @ZdenekVecera
Redaktor Programujte.com a Živě.cz
Jax99
~ Anonymní uživatel
3 příspěvky
5. 9. 2009   #18
-
0
-

To Johnny : nj, jenže pdfko ti naroste na několik set kB a to i při kompresi, protože všechny tyhle fonty si táhne s sebou

Nahlásit jako SPAM
IP: 85.161.136.–
Jasper0
Věrný člen
5. 9. 2009   #19
-
0
-

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ů...

Nahlásit jako SPAM
IP: 217.196.213.–
Jax99
~ Anonymní uživatel
3 příspěvky
5. 9. 2009   #20
-
0
-

To Jasper : já to právě zkoušel přes ten online converter s použitím cp1250 mapy a ta velikost je fakt moc (normálně by to pdfko mělo mít pár kB), jdu zkusit tu prezentaci :smile1:

Nahlásit jako SPAM
IP: 85.161.136.–
Jasper0
Věrný člen
5. 9. 2009   #21
-
0
-

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ší...

Nahlásit jako SPAM
IP: 217.196.213.–
Jax99
~ Anonymní uživatel
3 příspěvky
5. 9. 2009   #22
-
0
-

To Jasper : koukam, běží parádně, dík :smile18:

Nahlásit jako SPAM
IP: 85.161.136.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 70 hostů

Podobná vlákna

Problém s fpdf — založil Paja2

FPDF - pozadí textu — založil Anonymní uživatel

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý