EC-CUBE4 納品書PDFに領収書を付け足す

デフォルトで出力される納品書PDFの備考欄を領収書に変更します。

今回の要望としては、備考の欄に何も入力しなくても
名前、金額が入ってほしい
ということでした。

まずもともとの納品書PDFを生成しているのは
/src/Eccube/Service/OrderPdfService.php
というファイル。
このファイルをカスタマイズしていきます。

まず、備考欄の出力をしている部分は346行目付近の
renderEtcData 関数のようです。

 


    protected function renderEtcData(Shipping $Shipping)
    {

        $Order = $Shipping->getOrder();

        $nametext = $Shipping->getName01().' '.$Shipping->getName02().' 様';
        $paymentTotalText = $this->eccubeExtension->getPriceFilter($Order->getPaymentTotal());

        $cstm_receipt = <<< EOM
        {$nametext}

            {$paymentTotalText}
            但し品代として

        山形県米沢市堀川町5-68
            株式会社リゾリューションズ

        運送会社の発行する領収書、ご利用明細、振り込み明細いずれかと一緒に管理してください。
EOM;
        // フォント情報のバックアップ
        $this->backupFont();

        $this->Cell(0, 10, '', 0, 1, 'C', 0, '');

        $this->SetFont(self::FONT_GOTHIC, 'B', 9);
        $this->MultiCell(0, 6, '< 領収書 >', 'T', 2, 'L', 0, '');

        $this->SetFont(self::FONT_SJIS, '', 10);

        $this->Ln();
        // rtrimを行う
        // $text = preg_replace('/\s+$/us', '', $formData['note1']."\n".$formData['note2']."\n".$formData['note3']);
        // $this->MultiCell(0, 4, $text, '', 2, 'L', 0, '');
        $this->MultiCell(0, 4, $cstm_receipt, 0, 'C', 0, '');

        $logoFile1 = $this->eccubeConfig->get('eccube_html_dir').'/user_data/assets/pdf/xxx.png';
        $logoFile2 = $this->eccubeConfig->get('eccube_html_dir').'/user_data/assets/pdf/xxx.png';

        $this->Image($logoFile2, 155, 240, 20);
        $this->Image($logoFile1, 175, 250, 10);

        // フォント情報の復元
        $this->restoreFont();
    }

上記をコピペ+文章変更

$this->renderEtcData($Shipping);

↑ここも変更(233行あたり)これでなるはずです。