我使用FPDF附加组件“ write-html-tables”。该插件在HTML表中的确很好用。
http://fpdf.de/downloads/add-ons/write-html-tables.html
但是我对换行有疑问。如果单元格的内容太长,则无法在单元格内换行,并且文本与下一个单元格重叠。
我试图从“ write-html-tables”附加组件扩展代码,但是它不起作用。有人给我个提示如何扩展附件吗?
答案 0 :(得分:0)
FPDF附加Write-Html-Tables可能在表单元格中出现新行错误。我用\n
和<br>
进行了检查-同样的错误。
推荐的解决方案
如果您使用HTML代码为使用FPDF库生成的PDF文档构建表格,那么我建议使用FPDF easyTable project (FPDF Add-on)。
您必须从该项目下载easyTable.php
,formatedstring.php
,exfpdf.php
,并将此文件保存在FPDF文件夹中。不要忘记删除PHP文件结尾?>
之后的所有符号。
示例:
<?php
include 'fpdf.php';
include 'exfpdf.php';
include 'easyTable.php';
$pdf = new exFPDF();
$pdf->AddPage();
$pdf->SetFont('helvetica','',10);
$table = new easyTable($pdf, '%{70,30}', 'border:1');
$table->easyCell('If the content of a cell is too long, I can make a line break inside the cell and the text does not overlap the next cell.', 'colspan:2; bgcolor:#b3ccff');
$table->printRow();
$table->easyCell('If the content of a cell is too long, I can make a line break inside the cell and the text does not overlap the next cell.');
$table->easyCell('Some values 1');
$table->printRow();
//the next line is double quoted because new line(\n) should be interpreted
$table->easyCell("If the content of a cell is too long, I can make a line break inside the cell and\n\nthe text does not overlap the next cell.");
$table->easyCell('Some values 2');
$table->printRow();
$table->endTable(5);
$pdf->Output();
?>
输出示例作为屏幕截图的一部分:
如果您要手动换行,则应在"
周围使用双引号\n
,而不要使用单引号'
。
来自docs:
指定字符串的最简单方法是将其用单引号引起来 (字符
'
)。要指定文字单引号,请使用反斜杠(
\
)对其进行转义。 要指定文字反斜杠,请将其加倍(\\
)。所有其他实例 的反斜杠将被视为文字反斜杠:这意味着 您可能习惯的其他转义序列,例如\r
或\n
, 将按原样输出,而不是任何特殊的 意义。
如果字符串包含在双引号("
)中,PHP将解释[转义序列,例如\n
]。