magento打印发票会先转换为PDF,但由于内置只有中文字体,所以PDF里的中文会变乱码。

解决方案是追加中文字体,先下载中文字体(推荐微软雅黑ttf),把它放在./lib/Font/msyhbd.ttf

修改以下程序
/app/code/core/Mage/Sales/Model/Order/Pdf/Abstract.php

protected function _setFontRegular($object, $size = 7)
{
    $font = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() . '/lib/LinLibertineFont/LinLibertine_Re-4.4.1.ttf');
    $object->setFont($font, $size);
    // 中文字体
    $font = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() . '/lib/Font/msyhbd.ttf');
    $object->setFont($font, $size);
    return $font;
}
protected function _setFontBold($object, $size = 7)
{
    $font = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() . '/lib/LinLibertineFont/LinLibertine_Bd-2.8.1.ttf');
    $object->setFont($font, $size);
    // 中文字体
    $font = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() . '/lib/Font/msyhbd.ttf');
    $object->setFont($font, $size);
    return $font;
}
protected function _setFontItalic($object, $size = 7)
{
    $font = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() . '/lib/LinLibertineFont/LinLibertine_It-2.8.2.ttf');
    $object->setFont($font, $size);
    // 中文字体
    $font = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() . '/lib/Font/msyhbd.ttf');
    $object->setFont($font, $size);
    return $font;
}

猫之良品
2.5k 声望139 粉丝

资深Drupal, magento与Joomla


引用和评论

1 篇内容引用
0 条评论