Fix Magento Chinese PDF Wrong Charset

解决Magento中文订单PDF 输出乱码

这个BUG 是Magento本地化程度尚欠的一点体现。

这是由于 Magento 的 PDF 的字体是英文字体,并不支持中文,所以产生的 PDF 里中文无法显示,只显示为一个“口”。

可以通过重写Magento 的生成PDF 的核心代码,把字体修改为中文字体来实现修正。由此须准备一个 TTF 字体,如下,将标宋字体放在了$site_dir/media/fonts/STSONG.TTF,把 app/code/core/Mage/Sales/Model/Order/Pdf/Abstract.php 建一个副本到 app/code/local/Mage/Sales/Model/Order/Pdf/Abstract.php,然后大约在561 行:

protected function _setFontRegular($object, $size = 7)
{
$font = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() . ‘/media/fon
ts/STSONG.TTF’);
$object->setFont($font, $size);
return $font;
}

protected function _setFontBold($object, $size = 7)
{
$font = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() . ‘/media/fon
ts/STSONG.TTF’);
$object->setFont($font, $size);
return $font;
}

protected function _setFontItalic($object, $size = 7)
{
$font = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() . ‘/media/fon
ts/STSONG.TTF’);
$object->setFont($font, $size);
return $font;
}

Magento 1.4 toolbar bug

It is nice to have magento 1.4 released but there is a small bug in toolbar which makes the list and grid view error.

And I don’t like the error report in write in a number file stored in var/report, even though it is good to have it not showing in the frontend

It is a easy fix for the toolbar error for magento1.4

file to change:
code/core/Mage/Catalog/Block/Product/List/Toolbar.php

here is the code from the new magento1.4

class Mage_Catalog_Block_Product_List_Toolbar extends Mage_Core_Block_Template
{
/**
* Products collection
*
* @var Mage_Core_Model_Mysql4_Collection_Abstract
*/
the problem is the extends Mage_Core_Block_Template, it doesn’t have the method each as $this->getPages()

so if you change it to
class Mage_Catalog_Block_Product_List_Toolbar extends Mage_Page_Block_Html_Pager
all the problem fixed.