Подчас можно удивиться большому размеру 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.