EC-CUBE4の帳票(納品書)でちょっとお困りの件の巻

Date:

Share post:

EC-CUBE4の帳票で、ちょっと困った件があったので書こうと思います。

例えばですが、帳票の1カラム目に番号、2カラム目に商品名を入れたいとします。その時に商品名がもし想定外に長くてカラムの高さが1カラム目の高さを上まってしまう場合、こうなってしまいます。トホホ・・・。

 

 

1カラム目よりも2カラム目以降のセルの高さが大きくなってしまう場合にこうなってしまうようです。

どうしたものかと思っていたところ、Sさんに「その行の最大の高さをあらかじめ取得すればいいのでは?」とご助言頂いたのでやってみようと思ったところ、はたと手が止まりました。

TCPDFのMultiCellは、セルを描画する時に高さを取得しているので出力しないと高さが取れません。

これはどうすればと思い調べました・・・。

 

ありました、ホッ。

 

//文字列からセル高さを取得する
$h2 = $this->getStringHeight($w[$i2], $col, false, true, '', 1 );

 

結局このような感じで最大高さが取得できましたので、帳票の出力状態が改善できました。

 

foreach ($row2 as $key => $col) {

    if ($h2 >= $cellMaxHeight) {
        $cellMaxHeight = $h2;
    }

    //文字列からセル高さを取得する
    $h2 = $this->getStringHeight($w[$i2], $col, false, true, '', 1 );
    
    ++$i2;

}

 

蛇足ですが、Cellを描画するときに使用している配列と最大高さを取得するときに使用している配列は同じものを使うことはできませんのであらかじめコピーしておかないといけません。

TCPDFもまだまだ奥深いです。

Related articles

EC-CUBE(4.2系~4.3系)のプラグインを...

少し前から、日本郵便で『デジタルアドレ...

ラベル画像のトリミング(5)

「ラベル画像のトリミング(4)」では...

VirtualminでPHPの8.1をインストール...

すぐ忘れるのでメモ Virtu...

フロント担当のTIL 2025/05

「Today I Learned(今日学んだこと)」を記録するTIL、5月は社内プロジェクトのワインDB開発を中心に、様々な技術的な発見や課題解決がありました。