21 янв. 2015
Подчас можно удивиться большому размеру pdf-файлов (счета, заказы и пр.), генерируемых Magento. Происходит это за счет того, что в pdf внедряется шрифт LinLibertine в нескольких начертаниях - regular, bold, italic. А что если использовать одно начертание и вообще - подключить свой произвольный шрифт?
PDF-файл генерируется посредством компонента Zend_Pdf. Внести нам нужно всего три изменения в файл "/app/code/local/Mage/Sales/Model/Order/Pdf/Abstract.php".
1. Для начала создадим этот файл со структурой папок и перенесем туда содержимое файла ядра "/app/code/core/Mage/Sales/Model/Order/Pdf/Abstract.php".
2. В Abstract.php меняем путь и имя файла шрифта на наши:
было:
protected function _setFontRegular($size = 7)
{
$font = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() . '/lib/LinLibertineFont/LinLibertineC_Re-2.8.0.ttf');
$this->getPage()->setFont($font, $size);
return $font;
}
protected function _setFontBold($size = 7)
{
$font = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() . '/lib/LinLibertineFont/LinLibertine_Bd-2.8.1.ttf');
$this->getPage()->setFont($font, $size);
return $font;
}
protected function _setFontItalic($size = 7)
{
$font = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() . '/lib/LinLibertineFont/LinLibertine_It-2.8.2.ttf');
$this->getPage()->setFont($font, $size);
return $font;
}
стало:
protected function _setFontRegular($size = 7)
{
$font = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() . '/lib/MyFont/myfont-regular.ttf');
$this->getPage()->setFont($font, $size);
return $font;
}
protected function _setFontBold($size = 7)
{
$font = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() . '/lib/MyFont/myfont-bold.ttf');
$this->getPage()->setFont($font, $size);
return $font;
}
protected function _setFontItalic($size = 7)
{
$font = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() . '/lib/MyFont/myfont-italic.ttf');
$this->getPage()->setFont($font, $size);
return $font;
}
3. Создадим папку, где будет храниться шрифт - "корневая_директория/lib/MyFont" и поместим туда файлы шрифта - "myfont-regular.ttf", "myfont-bold.ttf", "myfont-italic.ttf".
Это все!
P.S. и напоследок - шрифт можно взять и из вашего любимого windows, из папки fonts.