gpt4 book ai didi

php - TCPDF MultiCell maxheight 参数是否覆盖了高度参数,即使它不必这样做?

转载 作者:行者123 更新时间:2023-12-05 06:44:28 25 4
gpt4 key购买 nike

我更新了我的 tcpdf 库,我现在面临这种奇怪的行为,显然 maxheight 参数覆盖了 minimum height 参数,即使单元格内容不是那个高。

来自docs它说:

  • $h: (float) Cell minimum height. The cell extends automatically if needed.
  • $maxh: (float) maximum height. It should be >= $h and less then remaining space to the bottom of the page, or 0 for disable this feature. This feature works only when $ishtml=false.

我的$maxh高于$h$ishtmlfalse:

$pdf->MultiCell(59, 5, "short", 1, 'L', true, 0, 45, 154, true, 0, false, false, 11, 'T', true);

所以 height5max height11。单元格总是 11,即使内容真的很短。

如何将单元格高度设置为最小值 5,最大值 11,并且仅当内容实际太多以至于到达新行时才展开?

当前:

enter image description here

期望:

enter image description here
和:

enter image description here

最佳答案

在文档中可能看起来有点不清楚,但您需要禁用 $fitcell 选项(它是 MultiCell() 的最后一个参数)才能实现预期的行为。该行应如下所示:

$pdf->MultiCell(59, 5, "short", 1, 'L', true, 0, 45, 154, true, 0, false, false, 11, 'T', false);

(注意末尾的 false 而不是 true)。

如果启用 $fitcell,TCPDF 将通过应用较小的字体大小来缩小较大的文本以适合单元格,但如果文本小于单元格,它不会尝试缩小单元格。

由于 TCPDF 在禁用 $fitcell 时也不会尝试放大单元格,因此您需要增加最大高度参数以允许更多内容。


这里有一个简短的例子:

require_once 'tcpdf/tcpdf.php';

// Create new pdf
$pdf = new TCPDF();

// Add a page
$pdf->AddPage();

// Set color for background
$pdf->SetFillColor(255, 255, 127);

// Add 2 cells
$pdf->MultiCell(59, 5, "one line", 1, 'L', true, 0, 50, 50, true, 0, false, false, 21, 'T', false);
$pdf->MultiCell(59, 5, "badger badger badger badger badger badger badger badger - mushroom! mushroom!", 1, 'L', true, 0, 50, 60, true, 0, false, false, 21, 'T', false);

$pdf->Output();

呈现:

enter image description here


在你告诉的评论中:

I do want to shrink the text if the text doesnt fit without shrinking, allowing the cell to expand to a maximum height. in your answer, one line and badger.. are the same font size

如果你想实现这一点,你需要禁用 $maxh 功能并启用 $fitcell 功能,就像这样:

require_once 'tcpdf/tcpdf.php';

// Create new pdf
$pdf = new TCPDF();

// Add a page
$pdf->AddPage();

// Set color for background
$pdf->SetFillColor(255, 255, 127);

// Add 2 cells
$pdf->MultiCell(59, 11, "short", 1, 'L', true, 0, 50, 50, true, 0, false, false, 0, 'T', true);
$pdf->MultiCell(59, 11, "badger badger badger badger badger badger badger badger - mushroom! mushroom!", 1, 'L', true, 0, 50, 60, true, 0, false, false, 0, 'T', true);

呈现:

enter image description here

但是,现在包含“short”的单元格不会缩小。

注意

在玩了这两个例子之后,我意识到了这个问题。目前我没有看到如何同时拥有一个带有“短”的缩小框和一个包含具有较小字体大小的长文本的框。但是,我会保留我的答案,这可能对其他人来说是一个很好的起点。

关于php - TCPDF MultiCell maxheight 参数是否覆盖了高度参数,即使它不必这样做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28729359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com