我正在使用从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中打印的内容是:
两个值都不相同。字体附近有一些盒子,最后一个字符上的点丢失了..
注意:我还将新创建的字体添加到 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
,请帮助我答案 0 :(得分:2)
Dompdf似乎存在UTF-8编码问题。我用dompdf尝试了你的样本,我遇到了同样的问题。但是,我也尝试了tcpdf(也是免费的)它似乎运作良好。
以下是您的示例代码和完整来源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中的实际答案是: