サイトカレンダをスキップ

«
2017年 09月
»
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

-

ログイン

ログイン

QRコード

QR code

Magentoの出力するPDF帳票で日本語を使える様にする

  • 2009年9月28日(月) 00:35 JST
  • 投稿者:
    kei_ef_2000
皆さまこんばんは。


既に皆さまご存知かとは思いますが、私のBLOG.に不定期でMagentoネタを書いている中で、本日はひとつ共有させて頂きたいと思います。

これからmagentoを触られる方の為にも、幾つかご参考になればと、こちらにも投稿させて頂きます。


タイトル「magentoで生成される領収書他で日本語を使える様にするTips」


Magentoでは、お客様のお買い上げ後、そのinvoiceなどを、クリック一つでPDFとして生成する機能を持っていますので、帳票を一から作る必要もなく、とても重宝します。

しかし標準の状態のMagentoでは、PDF生成に使うフォントが欧文フォントの為、お客様の情報や商品情報、店舗情報等が日本語で登録されている場合、当然文字化けしてPDF化されてしまいます。

本日は、サーバー移転作業の際、新サーバーで行った帳票出力の日本語化作業の手順をご紹介します。



■必要なもの(作業)

▽日本語のフォント

・IPAのオープンソースライセンスである”IPAフォントラインセンス" に基づき無償で配布されている「IPAフォント(Ver.3)」を利用させて頂きました。

入手先 -> http://ossipedia.ipa.go.jp/ipafont/

こちらのサイトからダウンロードしたファイルを解凍すると、4つの字体が入っています。私は等幅ゴシックの「ipagp.otf」を選択しました。

※4つの字体は全てTrueTypeベースOpenType形式のアウトラインフォントです。

※「Zend_Pdf_Font」で使用出来るフォント形式は、Zendのドキュメントによると、TrueType(.ttf)及びOpenType(.otf)の何れも使用可能との事です。



▽MagentoのCoreファイルで指定されている「Zend_Pdf_Font」の設定を、欧文フォントから上記「ipagp.otf」に変更する

※magento本家でのthegwinさんの記事を参考にさせて頂きました。

http://www.magentocommerce.com/boards...ead/42219/



・対象ファイル その1 -> /app/code/core/Mage/Sales/Model/Order/Pdf/Abstract.php

・対象ファイル その2 -> /app/code/core/Mage/Sales/Model/Order/Pdf/Items/Abstract.php

[重要]上記2ファイルは何れもcoreファイルなので、これを直接触らない事!!

これらを、/app/code/local以下にコピーし修正する事で、Magentoは、元のCoreファイルの設定に対してlocalが優先される設計になっていますので、この特性を利用します。





■作業手順



▽日本語フォントのインストール

1、magentoをインストールしたサーバー上に、日本語フォントを置く場所を作る

#mkdir /lib/jpfont



2、前述のIPAからダウンロードしたフォントセットの中から、好みのフォントを1つ選び、先程作った場所にアップロードする。

/lib/jpfont/ipagp.otf





▽設定ファイルの変更

1、まずは2つのcoreファイルを、localにコピーする

#cp /app/code/core/Mage/Sales/Model/Order/Pdf/Abstract.php /app/code/local/Mage/Sales/Model/Order/Pdf/Abstract.php

#cp /app/code/core/Mage/Sales/Model/Order/Pdf/Items/Abstract.php /app/code/local/Mage/Sales/Model/Order/Pdf/Items/Abstract.php



2、上でコピーした2つのファイルの中にある以下の「Zend_Pdf_Font」から始まる、全く同じ記述の行を探し、フォントの指定を、以下の通り前述でアップロードした日本語フォントに置き換える。

// $font = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() . '/lib/LinLibertineFont/LinLibertineC_Re-2.8.0.ttf');
$font = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() . '/lib/jpfont/ipagp.otf');

※2つ目のAbstract.phpファイルと、2つ目のItems/Abstract.phpファイルの中に、何れも3箇所ずつ記述が有る筈ですので、全て置き換えます。



3、完了!!動作確認



これで、Magentoの生成する各種PDF帳票で、日本語が使える様になりました。


追伸:
私の会社のBLOG.にて、気まぐれでmagentoネタを記事にしておりますが、この度サーバー移行に伴い、再びゼロから環境を構築し直しておりまして、改めて情報を整理しいろいろ掲載しております。
宜しかったら、ご参照下さい。


「横浜ではたらく代表のBLOG.」
合資会社 蔵 | 深海 (日本Asteriskユーザー会)
http://www.kula.co.jp/index.php/compa...log01.html


それでは、また。

トラックバック

このエントリのトラックバックURL:
http://www.magento-jp.com/trackback.php/20090928003533285
  • Magentoの出力するPDF帳票で日本語を使える様にする
  • 1件のコメント
  • アカウント登録
表示形式
コメント投稿

サイト管理者はコメントに関する責任を負いません。

  • Magentoの出力するPDF帳票で日本語を使える様にする
  • 投稿者:kei_ef_2000  2009年10月11日(日) 00:05 JST

※一部修正

 

▽日本語フォントのインストール

1、magentoをインストールしたルートディレクトリにある、lib以下に、日本語フォントを置く場所を作る

[誤]#mkdir /lib/jpfont

->

[正]#mkdir lib/jpfont



2、前述のIPAからダウンロードしたフォントセットの中から、好みのフォントを1つ選び、先程作った場所にアップロードする。

(magentoのルートディレクトリ)/
lib/jpfont/ipagp.otf