[Magento] 請求書のPDFで注文の商品名が長すぎてはみ出す問題の解消法
Posted by admin at 18:35 日時 2011/10/24
まぁ、タイトルのとおりです。MagentoのPDFで使われるフォントを日本語フォントにすればとりあえず請求書の印刷機能などが使えるのですが、商品名が長いとこんなことになってしまいます。
商品番号を突っ切ってしまいます。
この解決方法なんですが、app/code/core/Mage/Sales/Model/Order/Pdf/Items/Invoice/Default.php を app/code/local/Mage/Sales/Model/Order/Pdf/Items/Invoice/Default.php にコピーして、51行目のstr_splitの引数60を
'text' => Mage::helper('core/string')->str_split($item->getName(), 60, true, true),
30に変更すると
'text' => Mage::helper('core/string')->str_split($item->getName(), 30, true, true),
ばっちり改行されます。
商品が並んでいる部分の修正はほぼこのファイルでできそうです。
それ以外のヘッダや顧客情報などの部分のレイアウトは app/code/core/Mage/Sales/Model/Order/Pdf/Abstract.php や app/code/core/Mage/Sales/Model/Order/Pdf/Invoice.php で書かれていて、ロゴ部分やら住所部分やらメソッドが分かれているので、何かとカスタマイズしやすくなっているようですが、非常に複雑に入り組んでいるので、全体的なレイアウトは変えないのが無難だなーと思いました。