v.0.6.1中的PHP DOMPDF html到PDF转换器字体渲染问题

时间:2014-06-26 21:08:23

标签: php unicode fonts dompdf

我正在使用从github下载的DOMPDF v.0.6.1将HTML转换为PDF文件。我在配置中添加自定义字体时遇到了fontdisplay问题。 dompdf_font_family_cache.dist.php

我使用http://eclecticgeek.com/dompdf/load_font.php生成Unicode TAMIL字体(latha by microsoft font)。我已将字体复制到各自的文件夹中。

但是我看到字体不是按原样打印的。

我的代码:

<p style="font-family: tamil-latha, verdana, sans-serif;" >தமிழ்</p>

但PDF中打印的内容是:

enter image description here

两个值都不相同。字体附近有一些盒子,最后一个字符上的点丢失了..

注意:我还将新创建的字体添加到 dompdf_font_family_cache.dist.php

    'tamil-latha' => 
  array (
    'normal' => DOMPDF_FONT_DIR . 'latha',
    'bold' => DOMPDF_FONT_DIR . 'latha',
    'italic' => DOMPDF_FONT_DIR . 'latha',
    'bold_italic' => DOMPDF_FONT_DIR . 'latha',
  ),

我在github上提出了同样的问题:https://github.com/dompdf/dompdf/issues/838

建议的解决方案是:使用dompdf v.0.6.2 但是这里没有这样的版本:https://github.com/dompdf/dompdf 如果能够获得v.0.6.2

,请帮助我

2 个答案:

答案 0 :(得分:2)

Dompdf似乎存在UTF-8编码问题。我用dompdf尝试了你的样本,我遇到了同样的问题。但是,我也尝试了tcpdf(也是免费的)它似乎运作良好。

enter image description here

以下是您的示例代码和完整来源can be downloaded here

<?php

header('Content-type: text/html; charset=UTF-8') ;//chrome
require_once('tcpdf.php');

// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

$pdf->setFontSubsetting(true);

$pdf->SetFont('freeserif', '', 12);

$pdf->AddPage();

$utf8text = '
<html><head>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body>
<p>தமிழ்</p>
</body></html>';

$pdf->writeHTML($utf8text, true, 0, true, true);

$pdf->Output('example_008.pdf', 'I');

?>

答案 1 :(得分:0)

我按照josh的建议尝试使用tcpdf。 现在前一个单词很好,但新单词没有正确显示。

$utf8text = '
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>     <body><p>தமிழ்      முந்திரி </p></body>        </html>';

PDF中的实际答案是:

enter image description here