9

テーブル内の単一行の最小高さを調整しようとしていますが、結果はありませんでしたが、成功しませんでした。

次の方法を使用してテーブルを作成しています。

<?php 
$html = <<<EOD
<table style="border:1px solid black;">
  <tr>
    <td>
      Text 1
    </td>
    <td>
      Text 2
    </td>
  </tr>
 </table>
EOD;

$this->writeHTMLCell($w=0, $h=0, $x='', $y='', $html, $border=0, $ln=1, $fill=0, $reseth=true, $align='', $autopadding=true);
?>

私はすでに td パディング、td マージン、td 高さ、tr 高さを設定しようとしましたが、成功しませんでした。CSSとHTMLからも試してみました。私が達成できた唯一のことは、行の高さが元の値よりも大きいことですが、それを短くしたいと思います。TCPDF のドキュメントを検索してみましたが、唯一見つかったのは、TCPDF がパディングとマージンをサポートしていないことです。私の望む結果を達成するための何らかの「ハック」を知っている人はいますか?

4

1 に答える 1

31

おそらく遭遇しているのは、テキスト行の実際の高さです。内部的に、TCPDF はセルの高さの比率を使用して、レンダリングされる行の高さを制御します。テキストが 1 行の TD の場合、作成できる最小値は行全体の高さです。したがって、tdセルの最小サイズはfontsize * cellheightratio + any cellpadding proscribed

cellpadding はcellpadding属性から取得できるため、この例では 0 に設定します。setCellPaddingsHTML を記述する前に、パディングのサイズの少なくとも一部を設定することもできると思います。

line-heightCSS 宣言を使用して行を小さくすることにより、セルの高さの比率を設定できます。(もちろん、フォントサイズを小さくすることもできます。)

<?php

//For demonstration purposes, set line-height to be double the font size.
//You probably DON'T want to include this line unless you need really spaced
//out lines.
$this->setCellHeightRatio(2);

//Note that TCPDF will display whitespace from the beginning and ending
//of TD cells, at least as of version 5.9.206, so I removed it.
$html = <<<EOD
<table style="border:1px solid black;" border="1" cellpadding="0">
  <tr>
    <td>Row 1, Cell 1</td>
    <td>Row 1, Cell 2</td>
  </tr>
  <tr style="line-height: 100%;">
    <td>Row 2, Cell 1</td>
    <td>Row 2, Cell 2</td>
  </tr>
  <tr style="line-height: 80%;">
    <td>Row 3, Cell 1</td>
    <td>Row 3, Cell 2</td>
  </tr>
  <tr style="line-height: 50%;">
    <td>Row 4, Cell 1</td>
    <td>Row 4, Cell 2</td>
  </tr>
 </table>
EOD;

$this->writeHTMLCell($w=0, $h=0, $x='', $y='', $html, $border=0, $ln=1, $fill=0, $reseth=true, $align='', $autopadding=true);

5.9.206 インストールで上記のコードを実行すると、次のようになります。 設定された行の高さの視覚的な例。

これにより、行 1 が大きくなり、フォント サイズが 2 倍になります。行 2 は、行の高さをフォント サイズの 100% に設定します。行 3 は 80% です。行 4 は 50% です。

*テキストが折り返されている場合、行の高さを非常に低くすると見栄えが悪くなります。

于 2013-10-14T00:28:21.070 に答える