php - FPDF 多单元格相同高度
问题描述
所以,我的问题是我正在使用 FPDF 从 php 创建一个 pdf 文件。只有一个问题。一旦文本对于单元格来说太大,它就不会换行。所以我开始尝试使用多单元格,但还有另一个问题。一旦一个单元格被包裹在一张桌子上,我就无法让其他多单元格达到相同的高度。
这是我测试的代码。
<?php
require('../fpdf181/fpdf.php');
$pdf = new FPDF('P', 'mm', 'A4');
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Arial', '', 14);
$x = $pdf->GetX();
$y = $pdf->GetY();
$push_right = 0;
$pdf->MultiCell(50,10,"TEST shdfkjhdsafhahsjdkfkhjshakjfhdsdsfhkjdkjhsafhkjdakjhsfhkjdskjhaf", "TBRL");
$pdf->SetXY($x+50, $y);
$pdf->MultiCell(50,10,"TEST shdfkjhdsafhahsjdkfkhjshakjfhdsdsfhkjdsafsdafdsafsdafsdafddkjhsafhkjdakjhsfhkjdskjhaf", "TBRL");
$pdf->Output();
从那个代码我得到了这个:
但它应该看起来像这样:
解决方案
这是它的工作原理,对于那些有同样问题的人:
function MultiCellRow($cells, $width, $height, $data, $pdf)
{
$x = $pdf->GetX();
$y = $pdf->GetY();
$maxheight = 0;
for ($i = 0; $i < $cells; $i++) {
$pdf->MultiCell($width, $height, $data[$i]);
if ($pdf->GetY() - $y > $maxheight) $maxheight = $pdf->GetY() - $y;
$pdf->SetXY($x + ($width * ($i + 1)), $y);
}
for ($i = 0; $i < $cells + 1; $i++) {
$pdf->Line($x + $width * $i, $y, $x + $width * $i, $y + $maxheight);
}
$pdf->Line($x, $y, $x + $width * $cells, $y);
$pdf->Line($x, $y + $maxheight, $x + $width * $cells, $y + $maxheight);
}
要执行我使用的功能:MultiCellRow(3, 50, 10, ["Cell1","Cell2", "Cell3"], $pdf);
推荐阅读
- sql - 找出表的架构
- c - 如何检查输入的二进制数是否包含c中不同于0和1的数字?
- java - FireBase 存储元数据更新时间返回 0?
- php - PHP 直到刷新才在页面上运行
- c# - 如果值由模型绑定器绑定,则应用必需属性
- ansible - 如何使用 Ansible 从 nexus/artifactory/webserver 中的特定文件夹下载所有内容
- wordpress - WP-Plugin:在服务器之间传输数据?
- nuget - Nuget 包兼容性和升级
- spring-kafka - 当并发设置为大于 1 时,如何在消耗预定义的记录数后暂停/停止消费者线程?
- alexa-skill - 用户响应被切断并引发意外错误。如何获取发生的错误消息