Уважаемые специалисты, пожалуйста, проконсультируйте, как решить проблему. Она наверняка есть и у вас, т.к. присутствует в Prestashop 1.7.7.2 из коробки.
Prestashop везде четко показывает символ рубля (тот, что с черточкой), но в документах PDF (счетах и т.п.) показывает квадратик вместо него.
В форумах пишу, что проблема в том, что шрифты, используемые в Prestashop 1.7 и 1.6, и обрабатываемые файлом:
\classes\pdf\PDFGenerator.php и библиотекой
\vendor\tecnickcom\tcpdf\ не содержат этого символа. И что надо добавить шрифт с кириллицей + latin-extended, т.к. только расширенная латиница содержит этот символ.
Сделал так:
1. Выбрал шрифт Roboto - все начертания + cyrillic + latin-extended вот здесь:
https://google-webfonts-helper.herokuapp.com/fonts/roboto?subsets=cyrillic,latin,latin-ext2. Скачал файл и сконвертировал этим сервисом в формат для tcpdf
https://www.xml-convert.com/en/convert-tff-font-to-afm-pfa-fpdf-tcpdf3. Создал, соответственно, два файла для tcpdf: roboto.z и roboto.php
Скопировал их в \vendor\tecnickcom\tcpdf\fonts\
4. Скорректировал (заменил) строчку 43 в \classes\pdf\PDFGenerator.php для русского языка:
'ru' => 'freeserif',
на
'ru' => 'roboto',
5. Очистил все кэши.
Но у меня не сработало. Квадратик остался. Причины возможные две:
1. При конвертации ttf в формат txpdf у меня быстро на заднем фоне мелькал экран - возможно с ошибками. Итоговые файлы все же создал, но неуверенность, что при конвертации все же была ошибка остается.
2. Неправильно прописал строки в
\classes\pdf\PDFGenerator.php и, соответственно, в
\vendor\tecnickcom\tcpdf\fonts\roboto.phpНе могли бы вы выложить правильные файлы (для tcpdf и DFGenerator.php) здесь и объяснить, где ошибка была в моих действиях.