0

我正在为 tcpdf 编写 html 代码。我在 mysql 中保存了带有 html 标签的描述。如何在 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它时也会给我同样的问题。

4

3 回答 3

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;
于 2013-04-20T10:35:53.730 回答
0

我不确定当前版本的 TCPDF,但大多数 HTML 到 PDF 库都实现了自己的 HTML 解析器,而且它们经常无法识别相当常见的标签。特别是,我个人使用过不接受像<br />. 我建议你尝试使用<br>.

如果 HTML 代码是由第三方工具生成的,那么简单的方法str_replace('<br />', '<br>', $html)可能是快速而肮脏的修复。

编辑:显然,我们现在正在讨论替换所有不受支持的标签。这是一项重大任务。您需要使用 DOMDocument 或您选择的解析器——基于 HTML 的暴力破解操作迟早会触发无效结果。

另一种选择是切换到具有更好 HTML 支持的 PDF 工具,例如wkhtmltopdf(您需要安装的命令行程序)或mPDF(PHP 库)。

于 2013-04-20T10:41:47.740 回答
0

尝试将 <br /> 更改为 <br/>:

$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。

于 2013-04-20T10:42:59.923 回答