Статьи, приемы, хитрости и Уроки по Photoshop, Illustrator, Web дизайну и кодингу.

Кодировка в счете PDF Virtuemart v.2 (v.3) (invoice pdf по-русски)

Все привет!

Много вопросов уже возникало и много есть решений проблемы кирилицы или русского языка в PDF инвойсах (счетах, invoice ).

Остановлюсь на вопросах и буду давать краткие ответы.

Для начала ОБЯЗАТЕЛЬНО!!!:

1) скачиваем кирилические шрифты тут (TCPDF) в разделе Download или можно тут tcpdf_6_0_099

2) Разархивируем и из папки fonts копируем содержимое к себе на сервер в папку

ваш_сайт/libraries/tcpdf/fonts

Вопрос 1

на сайте при просмотре товара есть кнопка PDF - при ее нажатии генерируется pdf файл а вместо текста вопросы

Ответ 1

Открываем файл в дримвивере, блокноте или каким редактором кода вы пользуетесь

ваш_сайт/libraries/joomla/document/pdf/pdf.php, находим строку

$pdf->SetFont('helvetica', '', 8, '', 'false'); и заменяем на $pdf->SetFont('freesans', '', 6, '', 'false');

В этом же файле находим var $_header_font" и "var $_footer_font" заменяем на

var $_header_font = 'freesans';

var $_footer_font = 'freesans';

 

Вопрос 2

Счет PDF в Virtuemart 2 или 3 вместо текста вопросы.

Ответ 2

Идем в VirtueMart - Магазин - вкладка "Счета" и в блоке "Внешний вид" в списке "Шрифт по умолчанию" выбрать Free Mono (UTF-8 Unicide).

 

Вопрос 3

В Virtuemart 2 или 3 в меню Магазин-Счета нет доступных шрифтов.

Ответ 3

Идем в VirtueMart - Магазин - вкладка "Счета" и в блоке "Внешний вид" в списке "Шрифт по умолчанию" видм что ничего нет.

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

Эту строку комментируем // $this->SetFont($vmFont, '', $this->vendor->vendor_letter_font_size, '', 'false'); 
Эту вставляем $this->SetFont('freesans', '', '8', '', 'false');

тем самым мы напрямую говорим virtuemart, что шрифт у нас по умолчанию для генерации PDF freesans.

 

 

Вопрос 4

Счет PDF в Virtuemart 2 или 3 вместо текста знаки вопроса.

Ответ 4

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

Ищем следующее значение: $pdf->setHeaderFont(Array('helvetica', '', 8));

Изменяем на: $pdf->setHeaderFont(Array('freesans', '', 8));

Ищем значение: $pdf->setFooterFont(Array('helvetica', '', 10));

Изменяем на: $pdf->setFooterFont(Array('freesans', '', 10));

Ищем значение: $pdf->SetFont('helvetica', '', 8, '', true);

Изменяем на: $pdf->SetFont('freesans', '', 8, '', true);

Ищем значение: $this->SetFont('helvetica', 'I', 8);

Изменяем на: $this->SetFont('freesans', 'I', 8);

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

Ищем следующее значение: $this->setHeaderFont(Array('helvetica', '', 8));

Изменяем на: $this->setHeaderFont(Array('freesans', '', 8));

Ищем следующее значение: $this->setFooterFont(Array('helvetica', '', 10));

Изменяем на: $this->setFooterFont(Array('freesans', '', 10));

Ищем следующее значение: $this->SetFont('helvetica', '', 8, '', true);

Изменяем на: $this->SetFont('freesans', '', 8, '', true);

Ищем следующее значение: $this->SetFont('helvetica', 'I', 8);

Изменяем на: $this->SetFont('freesans', 'I', 8);

Если таких значений у вас в коде нет, Не беда отправляемся в пункт вопрос №3

 

 

 

Вопрос 5

tcpdf error: the xobject template '' doesn't exist! что за ошибка?

Ответ 5

затронуто ядро генерации - надо обновить полностью Virtuemart 2 или 3.

 

 

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

 

Последнее изменениеСреда, 19 Ноябрь 2014 12:08
  • Оцените материал
    (3 голосов)
  • Опубликовано в Web coding
  • Прочитано 20362 раз
SeRbGa

SeRbGa

мечтатель

Сайт: www.serbga.ru

Оставить комментарий

Комментарии  

Виталий
0 #16 Виталий 06.03.2017 23:27
У меня тоже не сразу помогло. Но вот в чем причина делайте новый заказ в магазине. И уже на новом заказе проверяйте эфект. Видимо генерация PDF происходит во время создания заказа, с теми шрифтами которые были настроенны.
SeRbGa
0 #15 SeRbGa 18.11.2016 15:50
вот инфа с оф. сайта вирта.
How to start

You are new to Joomla and VirtueMart or you don't have Joomla already installed? we recommend to download the Full installer:

Unzip the downloaded archive
Move the unzipped archive to your web folder
Open your browser and enter the URL of you website
The installation process starts. Follow the instructions.

You already have Joomla installed ?
Download VirtueMart component (Core, AIO and TCPDF)

Unzip the downloaded archive
Install the VirtueMart core component via the Joomla installer first (com_virtuemart.w.x.y.zip)
Install the VirtueMart AIO component second. It contains VirtueMart plugins and modules (com_virtuemart_ext_aio.w.x.y.zip)
Install the TCPDF component. It is necessary for printing invoices and delivery notes (com_tcpdf_1.0.0.zip)

все так ставили ?
SeRbGa
0 #14 SeRbGa 18.11.2016 15:48
вот мой кусок кода. версия вирта 3.0.9

$vmFont=$this->vendor->vendor_letter_font;
$this->SetFont($vmFont, '', $this->vendor-> vendor_letter_f ont_size, '', 'false');
$this->setHe aderFont(Array( $vmFont, '', $this->vendor-> vendor_letter_h eader_font_size ));
$this->setFooterFont(Array($vmFont, '', $this->vendor-> vendor_letter_f ooter_font_size ));
SeRbGa
0 #13 SeRbGa 18.11.2016 15:46
правильно, что 4 пункт не делали. Таких строчек в новых версиях просто нет.
есть у меня боевой проект с последними и движком и виртом. Ничего не делалось отсюда. все заработало само после пункта №2.
Даже шрифты загружать не пришлось.
Видимо ошибку разработчики все-таки поправили.
Cтанислав
0 #12 Cтанислав 17.11.2016 00:16
Странно, но не помогло(.
Стоит последняя версия Joomla и Virtuemart. Проделал все пункты (кроме 4-го) что указаны выше, но знаки вопросов не убрались(.
Вот кусочек кода из vmpdf.php :

$vmFont=$this->vendor->vendor_letter_font;
//$this->SetFont($vmFont, '', $this->vendor-> vendor_letter_f ont_size, '', 'false');
$this->SetFont( 'freesans', '', '8', '', 'false');
$this->setHeaderFont(Array($vmFont, '', $this->vendor-> vendor_letter_h eader_font_size ));
$this->setFooterFont(Array($vmFont, '', $this->vendor-> vendor_letter_f ooter_font_size ));
может тут где то проблема? Помогите плиз
Никола Федотов
0 #11 Никола Федотов 04.11.2016 21:10
Благодарю за информацию!) Очень помогло, сам бы не в жизнь не разобрался
Роман
0 #10 Роман 27.10.2016 15:53
Спасибо братан!
SeRbGa
0 #9 SeRbGa 11.08.2016 12:18
Цитирую sde:
спасибо за ответ. Joomla 2.5.16 VM 2.0.24. Выбрать ничего не могу, в списке ничего нет.

Ну так обновитесь до свежих версий и joomla (сейчас уже 3.6.2) и VM 3 - чего на старом сидеть и делать заплатки постоянно.
на сайте вирта написано "VirtueMart 3 component (Core, AIO and TCPDF)" TCPDF - не наводит ни на какие мысли ?
sde
0 #8 sde 11.08.2016 12:10
спасибо за ответ. Joomla 2.5.16 VM 2.0.24. Выбрать ничего не могу, в списке ничего нет.
SeRbGa
0 #7 SeRbGa 11.08.2016 11:10
Цитирую sde:
Вопрос 3.
Указанные действия не помогли. что можно ещё попробовать?

Сборка какая ? (версия joomla и VM ?). насколько я знаю в последней версии эту проблему разработчики победили. Там шрифт есть UTF-8 Fre Mono. Попробуйте другие шрифты выбрать - что после этого поменяется ?

You have no rights to post comments

Наверх

Популярные статьи

  • 1
  • 2
  • 3
  • 4

последние комментарии

ON-Line Блог SeRbGa.ru предоставляет самую свежую и актуальную информацию для веб-дизайнеров и разработчиков в виде тематических материалов, уроков созданных собственноручно, а так же переводов статей и новостей, полученных с зарубежных информационных ресурсов.

Копирование материалов сайта разрешено только с указанием активной индексируемой гиперссылки на данный сайт!

ДИСКЛЕЙМЕР/DISCLAIMER:

Я сам вдохновляюсь материалами, которые предлагаются вам на обозрение, будь то интересные руководства или полезные и впечатляющие подборки (дизайнов, шаблонов, макетов и т.д.), и по возможности всегда сохраняется ссылка на источники, и сообщается  автор изображений, использованных в подборках или руководствах. Зачастую, ссылка на источник не ведёт напрямую к автору шедевра, но если кто-то захочет использовать какие-либо изображения, графические элементы, исходники, которые здесь предоставлены, то единственное требование, выставленное к перепосту, заключается в сохранении ссылки на источник, а также соблюдение условий лицензионного соглашения (если таковое имеется). Если кто-то желает модифицировать тот или иной продукт, изменить его, подкорректировать, то ему придется самостоятельно искать настоящего автора материала.