LINUX.ORG.RU

centos китайские шрифты

 ,


0

1

использую либу https://github.com/dompdf/dompdf для генерации pdf
она создает pdf из html документа
в html документе используются китайские шрифты
локально тестирую на убунту десктоп и иероглифы отображает, при этом ничего из шрифтов не ставил
на сервере centos и иероглифы не отображает
пробовал указать шрифт явно в хтмл

@font-face {
font-family: 'Firefly Sung';
font-style: normal;
font-weight: 400;
src: url(http://eclecticgeek.com/dompdf/fonts/cjk/fireflysung.ttf) format('truetype');
}
* {
font-family: Firefly Sung, DejaVu Sans, sans-serif;
}

но не помогло
в интернете пишут что надо запустить команду yum groupinstall «Chinese Support» но там устанавливается куча всего, неужели это все нужно для шрифтов?

★★

Последнее исправление: kommersant (всего исправлений: 1)

Ответ на: комментарий от e1nste1n

не помогло
добавлял в оба font-family, и по одиночке
локально перестало отображать иероглифы
на сервере начала лезть ошибка

PHP Fatal error: Uncaught exception 'FontLib\\Exception\\FontNotFoundException' with message 'Font not found in: ' in Lib/Action/pdf/PDFbyK/vendor/phenx/php-font-lib/src/FontLib/Font.php:28\nStack trace:\n#0 Lib/Action/pdf/PDFbyK/vendor/dompdf/dompdf/src/FontMetrics.php(203): FontLib\\Font::load(false)\n#1 2017/Lib/Action/pdf/PDFbyK/vendor/dompdf/dompdf/src/Css/Stylesheet.php(1533): Dompdf\\FontMetrics->registerFont(Array, 'http://eclectic...', NULL)\n#2 /2017/Lib/Action/pdf/PDFbyK/vendor/dompdf/dompdf/src/Css/Stylesheet.php(1372): Dompdf\\Css\\Stylesheet->_parse_font_face('font-family: 'A...')\n#3 /2017/Lib/Action/pdf/PDFbyK/vendor/dompdf/dompdf/src/Css/Stylesheet.php(325): Dompdf\\Css\\Stylesheet->_parse_css('\\n @page ...')\n#4 /2017/Lib/Action/pdf/PDFbyK/vendor/dompdf/dompdf/src/Do in /2017/Lib/Action/pdf/PDFbyK/vendor/phenx/php-font-lib/src/FontLib/Font.php on line 28, referer:

kommersant ★★
() автор топика
Ответ на: комментарий от e1nste1n

сперва хотел понять может в centos проблема?
например локально работает такая строка

* {
font-family: Firefly Sung, DejaVu Sans, sans-serif;
}

при этом на серваке падает с ошибкой
значит у меня шрифты есть?
вот что команда yum groupinstall «Chinese Support» хочет ставить
https://imgur.com/a/ETqDB

kommersant ★★
() автор топика

вдруг поможет
проверил на сервере с убунтой 16,04
из веба кидало ошибку Allowed memory size of 33554432 bytes exhausted (tried to allocate 4096 bytes)
хотя в конфиге выделено 128мб
решил попробовать из консоли и нормально сгенерировало pdf с иероглифами
но на centos из консоли не хочет работать
при том что убунту ставилась штатная версия сервера

kommersant ★★
() автор топика
Ответ на: комментарий от kommersant

проверил в виртуалке на ubuntu 16, centos6,centos7
еще проверил на рабочем сервере ubuntu 16
работает везде кроме centos6
в centos6 применил команду yum groupinstall «Chinese Support» но не помогло
на centos7 ничего не ставил кроме пхп

kommersant ★★
() автор топика
Ответ на: комментарий от e1nste1n

работает только на убунте и на centos7
если явно указать шрифт font-family: Firefly Sung, DejaVu Sans, sans-serif; тогда нормально отображает иероглифы
на centos6 никак не хочет

kommersant ★★
() автор топика
Ответ на: комментарий от kommersant

1. проверь и сравни логи скрипта выполняющего рендер
2. проверь и сравни какой шрифт эмбеддится в сгенерированный pdf
3. посмотри различия centos 6/7 в /etc/fonts/conf.d/

e1nste1n ★★★★★
()
Ответ на: комментарий от kommersant

Выглядит корректно. У меня идей особо не осталось, советую идти в багтрекер.

e1nste1n ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.