EC-CUBEで納品書のPDFのサイズを変更

「EC-CUBEの管理画面でボタンを押すと吐き出される納品書のPDFファイルのサイズをA4以外のものに変更したい」と言ったお話を受け、
解決したもののググってもヤフっても情報が一切出なかったので、
もし似たようなことでお悩みの人がいたら良かったら見ていって的な感じでのメモ。
そして、Googleで「EC-CUBE,納品書,サイズ変更」でSEOを上げちゃいなYO、メーン。

と言っても、手を加える箇所はたったの2箇所なんだけども。。。(-_-;)
ちなみにバージョン2.4.4に関しての話。
他のバージョンでの確認はしてないのであしからず。


手順1.
  eccube/data/module/pdf/fpdf.phpの「FPDFクラス」のコンストラクタ真ん中辺りの「Page format」に関しての処理
if($format=='a4') $format=array(595.28,841.89);
というif文が書いてあるので、そこに任意のサイズの分岐を挟む。

手順2.
  同じ階層のeccube/data/module/pdf/japanese.phpの「PDF_Japaneseクラス」というのが上記の「FPDFクラス」の子孫(3つくらい下のサブクラス)なので「PDF_Japaneseクラス」にコンストラクタを下記のように定義。
function PDF_Japanese ($orientation='P',$unit='mm',$format='A4') {
parent::fpdi($orientation,$unit,$format);
}


これでOK。
PDF_Japaneseクラスを初期化する際に追加したサイズのフォーマットを引数に指定すれば任意のサイズでPDFを吐き出してくれる。

大阪の江坂でウェブ制作をしている、インフラもシステムもデザインもディレクションもできるエンジニア。 広く浅く薄っぺらくですが(笑)

Leave a reply:

Your email address will not be published.