我正在使用TCPDF库版本:5.9.011。我正在尝试以PDF格式执行HTML布局。我试过的例子提供了site
$html = '<h1>HTML Example</h1>
<h2>List</h2>
Some special characters: < € € € & è è © > \\slash \\\\double-slash \\\\\\triple-slash
';
// output the HTML content
$pdf->writeHTML($html, true, false, true, false, '');
//Close and output PDF document
$pdf->Output('example_006.pdf', 'I');
显然发现生成的PDF只有默认页眉和页脚,中间内容为空。
但是,如果我删除特殊字符,如:
$html = '<h1>HTML Example</h1>
<h2>List</h2>
Some special characters:
';
PDF获取$html
答案 0 :(得分:11)
行 $ pdf-&gt; writeHTML
之前的
$html = utf8_decode($html);
也许
$html = utf8_encode($html);
答案 1 :(得分:9)
正如其他人已经提到的,你需要更改构造函数,设置UTF-8 flase并更改新的charshet,如下所示:
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'ISO-8859-1', false);
只有更改此内容并不总能阻止获取空白页面。要防止获取空白页:将字体类型更改为“helvetica”或其他。
$pdf->SetFont('helvetica', '', 11, '', true);
有效!
答案 2 :(得分:5)
你需要更改构造函数,设置UTF-8 flase并更改新的charshet,如下所示:
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'ISO-8859-1', false);
在上面的示例中,我设置了编码ISO-8859-1而不是UTF-8,我将true更改为false。
Krish
答案 3 :(得分:1)
我也有类似的问题。我有一个从HTML文件生成pdf,其中包含多个列表和一个刻度符号作为项目符号。
我尝试了所有这些解决方案但没有工作,我不得不使用一张图片,但它正在减慢这个过程。 最后我遇到了这个:http://www.tcpdf.org/examples/example_055.pdf,最后有一个&#34; zapfdingbats&#34;字体有很多符号。
所以我用<span>3<span>
替换了我的所有刻度图像,并将此元素的字体设置为font-family="zapfdingbats"
,并且它有效。它有点hacky,但效果很好。
答案 4 :(得分:1)
您可以将文本放在变量中并使用php函数进行转换
UTF-8特征的例子
android:autoLink="all"
android:clickable="true"
android:linksClickable="true"
其他功能使用php reference guide
答案 5 :(得分:1)
对我来说,使用 UTF-8 编码保存文件。无需更改 new TCPDF()
或添加 utf8_decode($html)
。现在可以正常生成带有特殊字符的文本。
答案 6 :(得分:0)
您使用的是最新版本的TCPDF.Follow步骤here。它应该工作
答案 7 :(得分:0)
我有类似的问题,我以这种方式解决了所有问题:
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'UTF-8', false, true);
最后:
$pdf->writeHTMLCell(0, 0, '', '', utf8_decode($html), 0, 1, 0, true, '', true);
答案 8 :(得分:0)
对我来说,这解决了这个问题:
$this->pdf->AddPage('P', 'A4');
$this->pdf->deletePage($this->pdf->getNumPages());
我希望它会帮助某人
答案 9 :(得分:0)
我正在将HTML内容写为pdf,并且必须打印复选标记符号。这是我所做的,并且有效。
$pdf->SetFont('zapfdingbats');
$pdf->SetFont('helvetica'); // for regular content
然后在我的HTML中,我在下面的代码中添加了选中标记
<span style="font-family: zapfdingbats;">4</span>
希望如此
答案 10 :(得分:0)
将SetFont与dejavusans结合使用,以使用特殊字符在pdf中以pdf格式打印html,例如ŐŰ
还要确保在html中不需要使用字体家族,其他希望字体家族将覆盖dejavusans,并且您不会得到想要的东西。
$html = '<h1>HTML Example</h1>
<h2>List</h2>
Some special characters: < € € € & è è © > \\slash
\\\\double-slash \\\\\\triple-slash
more char ő Ő ű Ű
';
$pdf->SetFont('dejavusans');
$pdf->writeHTML($html, true, false, true, false, '');
$pdf->Output('output.pdf', 'D');
希望这会有所帮助