TCPDF中的WriteHTML / Euro符号无法正确显示

时间:2012-02-21 19:18:41

标签: php pdf-generation tcpdf

我已阅读所有其他主题并尝试了所有内容。这就是我所在的地方:

构造

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

我在执行writeHTML之前在缓冲区上运行utf8_encode。

我已经尝试了确切的引用,粘贴字符raw,将构造函数更改为UTF8似乎在我的文档周围添加带有重音的随机A ...

目前还不确定。

我的另一个问题是使用writeHTML进行样式化...我有表,因为TCPDF的writeHTML函数似乎并不真正包含盒子模型。例如,我有这个代码:

<td valign="top" align="left" style="padding:0;">
        <table width="193" cellpadding="0" cellspacing="0">
          <tr><td style="text-align:left;" align="left" valign="top" width="193" style="width:193px;">
        <?php
        $imageCount = count($theImages);
        for($i = 1; $i <= $imageCount; $i++)
        {
          $f = SITE_ROOT . '/i/properties/'. $p->id .'/l_'. $theImages[$i]['name'];
          $u = '/i/properties/'. $p->id .'/l_'. $theImages[$i]['name'];
          if(file_exists($f)) {
            echo '<img src="'.$u.'" width="193" /></td></tr><tr><td>';
          }
        }
        ?></td></tr></table>
      </td>

只是一个摘录,第一张图像与eft对齐,即使它全部是193?到目前为止,我已经花了相当一两天的时间,如果有人有任何替代方法来创建漂亮风格的属性数据表,与内容管理的PHP网站集成,请告诉我! :)否则我的问题的任何答案都会很棒。

1 个答案:

答案 0 :(得分:2)

您使用编码ISO-8859-1创建PDF,其具有不具有欧元符号的明显缺点。你可以

  • 快速而肮脏,不推荐:更改为ISO-8859-15(与ISO-8859-1兼容,但有欧元符号)

  • 更好:更改为UTF-8并确保在将所有文字投放到PDF生成器之前将其正确编码为UTF-8