ZendPdf problem rubrika: Programování: PHP

5 error414_1
položil/-a 20.1.2015

Cau,

resim ted takovy zapeklity problem. Pri pouziti ZendPdf (i toho noveho) se musi nastavit

ini_set('mbstring.internal_encoding', 'latin1');

pokud je locales nastaveno na vicebajtove kodovani, nejcasteji na UTF8. Problem je ze ini_set je globalni a kdyz chci vygenerovat PDF tak zmenim cele prostredi, coz funguje ale je fakt skarede :(.

ZendPdf totiz pracuje s bytema jako se stringem takze

//pokud je nastaveno locales na utf8
filesize($filePath) != strlen($fileContent)

Zatim jsem to vyresil tak ze jsem zdedil Zend_Pdf a v kazde metode ktera potrebuje jednobajtove kodovani, nastavim latin1 a na konci metody zase nastavim puvodni kodovani. Porad to neni idelani ale uz je to lepsi.

Mate nejaky napad jak to resit abych to nemusel forkovat?

odkaz
3 Václav Vaník
odpověděl/-a 23.1.2015

Koukni do manuálu

 $pdfPage->drawText($unicodeString, 72, 720, 'UTF-8');

Komentáře

  • error414_1 : moc nechapu co to ma stim spolecneho. ja nemluvim o kodovani textu, ale o nacitani binarnich souboru (TTF, PDF) v Zend_Pdf ktere musi mit nastaveno kodovani na jednobajtove. staci se podivat sem https://github.com/zendframework/zf1/blob/master/library/Zend/Pdf/Parser... Zend_Pdf ve ZF2 to dela trochu jinak ale stejne si neporadi s multibyte kodovanim. 24.1.2015
  • Taco : @error414_1: Tos' ale nikde nezmínil. 24.1.2015

Pro zobrazení všech 3 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.