我正在为tcpdf编写html代码。我的描述保存在带有html标签的mysql中。我可以在php中读取它。例如:
$description = "Brand new!!! <br /><br /><br />Huge size";
$html = '<div>'. $description.'</div>';
$pdf->writeHTML($html, true, false, true, false, '');
它显示了描述。我需要实现html标签(三次来到新行)
我试过但没有运气
$description = htmlspecialchars($rw['description_demo']);
输出应该像
全新的!!! 巨大的尺寸
当我使用echo $html
时,它也会给我同样的问题。
答案 0 :(得分:0)
而不是使用<br>
尝试以下代码,如果它对您有帮助
$pdf->InsertText("Line one\n\nLine two");
或者如果你想删除html标签
$string = 'A string with <br/> & "double quotes".';
$string = str_replace(array('<br/>', '&', '"'), ' ', $string);
echo $string;
答案 1 :(得分:0)
我不确定当前版本的TCPDF,但大多数HTML到PDF库都实现了自己的HTML解析器,而且他们经常无法识别相当常见的标签。特别是,我个人使用的库不接受<br />
这样的自闭标签。我建议你试试<br>
。
如果HTML代码是由第三方工具生成的,那么简单的str_replace('<br />', '<br>', $html)
可能是一个快速而又脏的修复。
编辑:显然,我们现在正在讨论替换所有不支持的标记。这是一项重大任务。您需要使用DOMDocument或您选择的解析器 - 基于强制字符串的HTML操作可能迟早会触发无效结果。
其他替代方法是切换到具有更好HTML支持的PDF工具,例如wkhtmltopdf(需要安装的命令行程序)或mPDF(PHP库)。
答案 2 :(得分:0)
尝试更改&lt; br /&gt;到&lt; br /&gt;:
$description = "Brand new!!! <br /><br /><br />Huge size";
$html = '<div>.' $description'.</div>';
$pdf->writeHTML(str_replace('<br />', '<br/>', $html), true, false, true, false, '');
但请记住,tcpdf对html标签的支持有限。
如果你想从html生成pdf我建议使用wkhtmltopdf - 它使用webkit渲染引擎,所以你应该没有问题用你的描述生成pdf。