在 PHP 中使用 FPDF 将两个 MultiCell 并排放置

Posted

技术标签:

【中文标题】在 PHP 中使用 FPDF 将两个 MultiCell 并排放置【英文标题】:Placing two MultiCells next to each other using FPDF in PHP 【发布时间】:2012-08-12 12:28:40 【问题描述】:

我尝试使用 FPDF Cell/MultiCell 创建自定义表格。

我的第一个单元格是MultiCell,它有两行文本。下一个单元格应该就放在它旁边。

问题:无论我对下一个单元格做什么,它总是在页面的下一行,而不是紧挨着第一个单元格 - 这让我发疯了。

这是我的代码:

require_once 'config.php';
require 'fpdf.php';

$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','',10);
$pdf->MultiCell(150,10,'Certificate of foreign Currency usage in respect of materials and components in terms of the notes to rebate item ',1);
$pdf->SetFont('Arial','',10);
$pdf->MultiCell(40,10,'DA190',1);
$pdf->Output();

包含文本“DA190”的单元格应放在前一个单元格的旁边,但位于前一个单元格的下方。

【问题讨论】:

【参考方案1】:

在打印第一个多单元格之前,记录光标位置:

$x=$this->GetX();
$y=$this->GetY();

使用$this->Multicell($w,5,'Content');添加您的多单元格

将光标位置重置为起始高度 (y) 和起始水平 + 第一个多格的宽度:

$this->SetXY($x+$w,$y);

添加您的下一个多单元格并根据需要重复。

【讨论】:

$w 未定义 $w 已定义。它是前一个单元格的宽度。如果你使用 MultiCell(123,6,'content');您也可以只使用 $this->SetXY($x+123,$y);如果您不使用 MultiCell 宽度的变量。【参考方案2】:

这对我有用

$pdf->multicell(120, 5, '   ' . $actividad, 0, 'l', true);
$x = $pdf->GetX();
$y = $pdf->GetY();
$pdf->SetXY($x + 120, $y);
$pdf->Cell(70, -5, '   ' . $claseActividad, '', 0, 'l', true);

result

【讨论】:

【参考方案3】:

我找到了解决方案 - fpdf 有一个扩展 (#3),专注于使用多单元格。

【讨论】:

你能再解释一下这个答案吗?需要添加什么才能使 3 个单元格适合一行?这是您修改后的code。

以上是关于在 PHP 中使用 FPDF 将两个 MultiCell 并排放置的主要内容,如果未能解决你的问题,请参考以下文章

FPDF.php 的文件大小比 TCPDF.php 小约 20 倍?为啥?

使用 FPDF (PHP) 插入带有 alpha 通道的 PNG

使用 FPDF 通过 PHP 发送 PDF 附件

php 将base64图像数据插入到fpdf中

PHP使用FPDF pdf添加水印中文乱码问题

php中我用了thinkPHP 然后我要打印pdf报表 用了fpdf 但是现在不知道在action中怎么调用fpdf中的内容。