- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我使用 FPDF 库将一些文档文件导出为 PDF。一个文档包含一个长度不同的字符串列表。我将所有字符串打印为 $pdf->MultiCell()
。现在我想让那个 MultiCell 的当前高度具有相同的行间距,以防它们只有一行或多行。
代码示例:
//MySQL Query
while($row = mysql_fetch_array($res) {
$pdf->SetXY(18, $x);
$pdf->MultiCell(80, 5, $rowr['text']); //text has one or more lines
$x = $x + 10; // Here I would prefer a solution to say: $x = $x + 2 + height of the MultiCell()
}
最佳答案
我遇到了完全相同的问题;我使用 FPDF 生成发票,每行有四个单元格,第一个单元格是一个具有不同高度的多单元格(默认高度为 5,但如果订单名称太长,它会添加另一行到总高度 10,依此类推) .问题是其余 3 个单元格的高度是固定的。
在寻找解决方案之后,似乎唯一的办法就是编写一个复杂的函数或使用一些第三方工具。因为我希望我的应用程序尽可能轻便,所以我使用以下方法来解决它,在我看来这比外部插件更简单。
$Y=95;
在我的 while 循环之前我的第一个单元格(MultiCell)如下:
$pdf->SetXY(10,$Y);
$pdf->MultiCell(60,5,$row['Name'],1,1,'L');
我使用 FPDF 的 GetY() 函数获取当前高度并将其保存为 H:
$H = $pdf->GetY();
如果 MultiCell 的高度为 5,GetY() 将返回 100,如果高度为 10,GetY() 将返回 105,依此类推。
我添加新变量 $height:
$height= $H-$Y;
结果就是 MultiCell 的高度。
我使用 $Y 和 $height 来设置当前位置和列高:
$pdf->SetXY(130,$Y);
$pdf->Cell(40,$height,$row['RowName'],1,1,'L');
在完成 while 循环之前,设置 $Y 为 $H 的值:
$Y=$H;
整个循环如下所示并且运行良好:
$Y= 95;
$query = mysqli_query($con,"SELECT * FROM table");
while($row = mysqli_fetch_array($query)) {
$pdf->SetXY(10,$Y);
$pdf->MultiCell(60,5,$row['ROW1'],1,1,'L');
$H = $pdf->GetY();
$height= $H-$Y;
$pdf->SetXY(70,$Y);
$pdf->Cell(60,$height,$row['ROW2'],1,1,'L');
$pdf->SetXY(130,$Y);
$pdf->Cell(40,$height,$row['ROW3'],1,1,'L');
$pdf->SetXY(170,$Y);
$pdf->Cell(30,$height,$row['ROW4'],1,1,'L');
$Y=$H;
}
如果您在每行中有 2 个或更多的多单元格列,它会变得棘手,但仍然可以通过类似的方式解决。
关于php - MultiCell 元素的 FPDF 高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18356118/
从版本 5.9 开始,我还没有找到控制 TCPDF 的 MultiCell 中行距的方法。我也没有找到任何有助于通过使用 Cell 来模拟相同行为的方法,例如返回不适合 Cell 宽度的文本部分的方法
这是我的代码。请帮忙。 foreach ($data as $row) { $i = 0; foreach ($row as $field) {
我正在使用 fpdf 从 MySql 表中的数据动态创建 pdf。我正在使用 MultiCell() 函数打印它。我的问题是我希望它自动调整文本的行高。我已经阅读了网站上的文档,但它只讲述了自动调整宽
我写了下面的代码,它工作正常但是多单元格行高不正常。我写了下面的代码,它工作正常但是多单元格行高不正常。我写了下面的代码,它工作正常但是多单元格行高是无法正常工作。 $x=$pdf->GetY();
我正在尝试在多单元格内创建一个换行符。我所做的是: $pdf->MultiCell(90,10,'test'.'\n'.'test',1,0,'C',1); 根据手册,多单元格应该解析 '\n' 字符
我使用 FPDF 库将一些文档文件导出为 PDF。一个文档包含一个长度不同的字符串列表。我将所有字符串打印为 $pdf->MultiCell()。现在我想让那个 MultiCell 的当前高度具有相同
基本问题:是否可以在将 MultiCell 放入文档之前确定它的高度? 原因:我的任务是创建一个 PDF 版本的表单。此表单允许文本输入,结果长度可变。一个人我什么都不输入,另一个人可能会写几段。 “
我正在使用 fpdf 的 java 端口。我遇到了流水错误。 1).当我每次在新行上打印文本时调用 multicell 2 次。 MultiCell(0, 1, "abcd", currentBord
我更新了我的 tcpdf 库,我现在面临这种奇怪的行为,显然 maxheight 参数覆盖了 minimum height 参数,即使单元格内容不是那个高。 来自docs它说: $h: (float)
我尝试创建包含多个页面的 PDF,并且需要提前计算每个单独元素 (MultiCell) 的高度,以准备分页。根据文档,有几个函数(例如 GetCharWidth/GetStringWidth)可以支持
我尝试使用 FPDF Cell/MultiCell 创建自定义表格。 我的第一个单元格是一个包含两行文本的 MultiCell。下一个单元格应该紧挨着它放置。 问题:无论我对下一个单元格做什么,它总是
我是一名优秀的程序员,十分优秀!