2010-11-10 59 views
9

我正在使用TCPDF库版本:5.9.011。我试图执行PDF格式的HTML布局。对于我与例如试图与site带特殊字符的TCPDF HTML显示空的PDF文件

$html = '<h1>HTML Example</h1> 
<h2>List</h2> 
Some special characters: &lt; € &euro; &#8364; &amp; è &egrave; &copy; &gt; \\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

回答

0

指定

$html = '<h1>HTML Example</h1> 
<h2>List</h2> 
Some special characters: 
'; 

PDF获取其内容中您正在使用的TCPDF.Follow步骤最新版本提到here。它应该工作

+0

我只遵循相同的步骤。但没有运气。 – 2010-11-10 07:31:13

+0

链接现已停止。 – beerwin 2012-10-26 12:03:02

+1

@ beerwin http://www.tcpdf.org/examples/example_006.phps – NullPointerException 2013-01-30 15:24:26

4

你需要改变的构造,设置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和我改变为假。

Krish

+0

将TCPDF构造函数的$ unicode参数设置为false,并将$ encoding参数设置为'ISO-8859-1'或其他字符映射 – Elisa 2011-05-26 07:17:29

9

由于已经按您需要改变的构造,设置UTF-8 FLASE和更换新charshet像下面其他人mentionned:

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'ISO-8859-1', false); 

只有改变这不会总是得到预防一个空白页。要防止出现空白页面:将字体类型更改为'helvetica'或其他。

$pdf->SetFont('helvetica', '', 11, '', true); 

它的工作原理!

10

前行$ PDF - >的WriteHTML

$html = utf8_decode($html); 

也许

$html = utf8_encode($html); 
+0

utf8_decode欺骗我!谢谢,真是令人沮丧,没有错误信息来指导我 – 2016-11-18 14:07:09

+0

$ output = utf8_encode($ output);解决我的问题!谢谢 – NoBody 2016-12-13 17:32:40

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); 
0

我也有类似的问题。我有一个从多个列表和勾号符号作为项目符号的HTML文件生成PDF。

我尝试了所有这些解决方案,但都没有工作,我不得不使用一张照片,但它减慢了这个过程。 最后我想到了这个:http://www.tcpdf.org/examples/example_055.pdf,最后有一个带有很多符号的“zapfdingbats”字体。

所以我把我所有的打勾图片都换成了<span>3<span>,并且把这个元素的字体设置为font-family="zapfdingbats",它工作起来。它有点冒险,但是效果很好。

0

你可以把文本中的变量,并使用PHP函数转换

例如为UTF-8卡拉科特

$html = '<h1>HTML Example</h1> 
<h2>List</h2> 

Some special characters: € è ù à \\ \\\ 
'; 
// output the HTML content 
$pdf->writeHTML(utf8_encode($html), true, false, true, false, ''); 

//Close and output PDF document 
$pdf->Output('example_006.pdf', 'I'); 

其它功能使用php reference guide

0

对于我来说,这个固定问题:

$this->pdf->AddPage('P', 'A4'); 
$this->pdf->deletePage($this->pdf->getNumPages()); 

我希望它会hel p someone