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;
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。