Сделаем маленькое отступление. Если на этапе оформления заказа Ваш Virtuemart 2.0 начинает глючить, то показывая страницу 404, то зависая, то выдавая множество ошибок, переставьте для начала пакет Virtuemart 2.0 all in one (aio), который идет в стандартной поставке с самим магазином.

Virtuemart 2.0 pdf инвойсы и русские буквы.

   Итак, оказывается шрифты, которые используются для формирования счетов в самом virtuemart попросту не поддерживают кириллицу (кириллические символы). Программисты Virtuemart здесь кивают в сторону TCPDF, библиотеки, которую использует и Virtuemart для формирования pdf документов (вид для печати в pdf, virtuemart 2.0 invoce pdf и т.п.).

   Итак, приведем порядок действий, как же «добавить» поддержку кириллицы в invoice pdf virtuemart 2.0.

   Первое, после установки virtuemart 2.0 в папке /libraries создает подпапку /libraries/tcpdf/fonts/

   Нам нужно добавить необходимые шрифты, поддерживающие кириллицу, в эту подпапку. Для этого переходим на сайт разработчиков в раздел download, качаем последнюю библиотеку для php 5 (joomla версии 2.5 больше не поддерживает php4). После того, как скачали, открываем архив, в нем папку tcpdf и папку fonts из нее копируем по пути /libraries/tcpdf (только папку шрифтов!), соглашаясь о замене всех существующих файлов. После этого мы сможем использовать следующие кириллические шрифты, например: freesans или times.

   Перейдем теперь к изменению файлов virtuemart для добавления поддержки кириллицы в pdf invoice в virtuemart 2.0.

   Открываем файл /components/com_virtuemart/controllers/invoice.php

Ищем следующее значение (приблизительно строка 169):

$pdf->setHeaderFont(Array('helvetica', '', 8));

Изменяем на:

$pdf->setHeaderFont(Array('freesans', '', 8));

Далее ищем значение (приблизительно строка 170):

$pdf->setFooterFont(Array('helvetica', '', 10));

Изменяем на:

$pdf->setFooterFont(Array('freesans', '', 10));

Далее ищем значение (приблизительно строка 197):

$pdf->SetFont('helvetica', '', 8, '', true);

Изменяем на:

$pdf->SetFont('freesans', '', 8, '', true);

Далее ищем значение (приблизительно строка 251):

$this->SetFont('helvetica', 'I', 8);

Изменяем на:

$this->SetFont('freesans', 'I', 8);

Дальше открываем файл /components/com_virtuemart/helpers/vmpdf.php

Ищем следующее значение (приблизительно строка 183):

$this->setHeaderFont(Array('helvetica', '', 8));

Меняем на:

$this->setHeaderFont(Array('freesans', '', 8));

Ищем следующее значение (приблизительно строка 184):

$this->setFooterFont(Array('helvetica', '', 10));

Меняем на:

$this->setFooterFont(Array('freesans', '', 10));

Ищем следующее значение (приблизительно строка 211):

$this->SetFont('helvetica', '', 8, '', true);

Меняем на:

$this->SetFont('freesans', '', 8, '', true);

Ищем следующее значение (приблизительно строка 250):

$this->SetFont('helvetica', 'I', 8);

Меняем на:

$this->SetFont('freesans', 'I', 8);

   Данная инструкция верна для virtuemart 2.0.16 + 2.0.18 a по замене кода в указанных файлах. Но что же делать, если код и версия вашего Virtuemart 2.0 отличаются?

   Нужно сделать следующее: найти поиском по файлам рекурсивно в папках /components/com_virtuemart все строки, где встречается helvatica, и заменить их на freesans, или другой шрифт в формате tcpdf из папки /libraries/tcpdf/fonts (название шрифта в папке и будет названием шрифта для замены), поддерживающий кириллицу (русские символы). Можно также дополнительно осуществить поиск по методам самого класса tcpdfSetFont,setHeaderFont,setFooterFont, и изменить шрифт, указанный в этих методах. А еще в этих методах Вы можете кроме начертания шрифтов изменить их размер. Для этого третьим параметром каждого метода можно передать целое число (высоту шрифта). Рекомендую для freesans увеличить на 1-2 пункта это значение по сравнению с helvatica. Шрифт будет крупнее и читабельнее. После всех изменений сделайте заказ и проверьте, как выглядит invoce в pdf.

   Вы задумывались о собственном доме? Советую Вам обратить внимание на дома из клееного бруса

Больше информации о веб технологиях можно узнать из нашего перечня всех статей на сайте:

Комментарии   

 
0 #5 fixbob 26.11.2014 07:57
Идете в магазин - Счета/Эл. почта - там в шрифт по умолчанию выставляете Free Mono - все теперь на русском
Цитировать
 
 
0 #4 enigmamax 08.06.2014 16:59
:lol: А можно было просто в админке Virtuemart поменять кодировку?! зачем такие сложности)))))? ????
Цитировать
 
 
0 #3 Валентин 29.07.2013 07:52
СПАСИБО!
Коротко, ясно.
Все сработало!
Цитировать
 
 
0 #2 Никита 19.04.2013 11:46
Вы просто супер!!! А есть ли у Вас материалы по установке платежных систем с их сравнительным анализом? Спасибо!
Цитировать
 
 
+1 #1 Александр 13.03.2013 04:01
Респект, грамотно изложено, а то уе..мучился с кириллицей 8)
Цитировать
 

Добавить комментарий


Яндекс.Метрика