2014-12-03 1 views
0

Стандартные шрифты Zend PDF обычно равны символу Latin1, поэтому для работы с другими языками должен быть указан соответствующий шрифт ttf, так что это то, что я есть делать ....Zend PDF загруженный ttf с поддержкой языка, но все же не отображающий символы, такие как русский или польский

возвращение Zend_Pdf_Font :: fontWithPath ($ это -> _ getFontFileDir() $ fontFile.)

шрифт определенно используется, но язык конкретные символы не в состоянии быть оказаны: Русский - цдгчкфсшдгч или Polish - ńóźżćć

Я пробовал несколько шрифтов с подходящим e, включая, например, DejaVuSans, который поставляется с библиотекой dompdf.

Я также проверить кодировку перед отправкой -> DrawText (

 $addressItem = @iconv(mb_detect_encoding($addressItem), "UTF-8", addressItem);   

     $page->drawText(
      $addressItem, 
      $this->_width, 
      $this->_height, 
      'UTF-8' 
     ); 

Возможно, кто-то использовал шрифт в этой ситуации, которая была замечена работать с неудавшихся символов выше

+0

Разве мы не имеем некоторую путаницу между кодировками iso-8859-x, которые хранят символы в байтах между 127 и 255 символа 8 бит и utf-8, которые хранят символы в одиночных или многобайтовых последовательностях, которые представляют собой справедливый кусок unicode, который охватывает глифы большинства языков мира. Возможно, вам нужно что-то переводить из одного в другое, так как ваши глифы в шрифтах представлены значениями в диапазоне 127-255, а не большими числами в http://en.wikipedia.org/wiki/Cyrillic_script_in_Unicode –

ответ

0

? Это просто вопрос шрифта, так как у меня была та же проблема для перевода турецких и польских текстов: они хорошо печатались на экране (повторяя их с PHP), но PDF (с Zend_Pdf) не выглядели хорошо, показывая (или не показывая на всех) квадраты вместо нескольких символов. Мне пришлось импортировать и попробовать несколько внешних шрифтов .ttf перед найдя тот, который работал: я использовал простой шрифт Arial TTF. Надеюсь, это поможет!