我正在尝试创建具有正确字符的pdf,但有"?“查斯。我创建了一个测试php文件,在那里我试图找到最佳的解决方案。如果我在浏览器中打开html,我看起来像是ok
UTF-8 --> UTF-8 : X Ponuka číslo € černý Češký 但是当我看pdf的时候,我看到了这个
UTF-8 --> UTF-8 : X Ponuka ?íslo € ?erný ?ešký 以下是我的所有代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>č s š Š</title>
</head>
<body>
<?php
require_once("dompdf/dompdf_config.inc.php");
$tab = array("UTF-8", "ASCII", "Windows-1250", "ISO-8859-2", "ISO-8859-1", "ISO-8859-6", "CP1256");
$chain = '<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <style></style><title>č s š Š</title></head><body>';
foreach ($tab as $i)
{
foreach ($tab as $j)
{
$chain .= "<br> $i --> $j : ".iconv($i, $j, 'X Ponuka číslo € černý Češký <br>');
}
}
$chain .= '<p style="font-family: firefly, verdana, sans-serif;">??????X Ponuka číslo € černý Češký <br></p></body></html>';
echo $chain;
echo 'X Ponuka číslo € černý Češký <br>';
$filename = 'pdf/_1.pdf';
$dompdf = new DOMPDF();
$dompdf->load_html($chain, 'UTF-8');
$dompdf->set_paper('a4', 'portrait'); // change these if you need to
$dompdf->render();
file_put_contents($filename, $dompdf->output());
?>
</body>
</html>我做错了什么?我尝试了很多选择,我发现:(有什么想法吗?
发布于 2017-03-19 20:22:55
如果您不介意只有一个字符集,您可以在dompdf_font_family_cache.dist.php中更改每个字符集
就像
<?php
$distFontDir = $rootDir . DIRECTORY_SEPARATOR . 'lib' . DIRECTORY_SEPARATOR . 'fonts' . DIRECTORY_SEPARATOR;
return array(
'sans-serif' =>
array(
'bold' => $distFontDir . 'DejaVuSans-Bold',
'bold_italic' => $distFontDir . 'DejaVuSans-BoldOblique',
'italic' => $distFontDir . 'DejaVuSans-Oblique',
'normal' => $distFontDir . 'DejaVuSans'
),
'times' =>
array(
'bold' => $distFontDir . 'DejaVuSans-Bold',
'bold_italic' => $distFontDir . 'DejaVuSans-BoldOblique',
'italic' => $distFontDir . 'DejaVuSans-Oblique',
'normal' => $distFontDir . 'DejaVuSans'
),
'times-roman' =>
array(
'bold' => $distFontDir . 'DejaVuSans-Bold',
'bold_italic' => $distFontDir . 'DejaVuSans-BoldOblique',
'italic' => $distFontDir . 'DejaVuSans-Oblique',
'normal' => $distFontDir . 'DejaVuSans'
),
'courier' =>
array(
'bold' => $distFontDir . 'DejaVuSans-Bold',
'bold_italic' => $distFontDir . 'DejaVuSans-BoldOblique',
'italic' => $distFontDir . 'DejaVuSans-Oblique',
'normal' => $distFontDir . 'DejaVuSans'
),
'helvetica' =>
array(
'bold' => $distFontDir . 'DejaVuSans-Bold',
'bold_italic' => $distFontDir . 'DejaVuSans-BoldOblique',
'italic' => $distFontDir . 'DejaVuSans-Oblique',
'normal' => $distFontDir . 'DejaVuSans'
),
'zapfdingbats' =>
array(
'bold' => $distFontDir . 'DejaVuSans-Bold',
'bold_italic' => $distFontDir . 'DejaVuSans-BoldOblique',
'italic' => $distFontDir . 'DejaVuSans-Oblique',
'normal' => $distFontDir . 'DejaVuSans'
),
'symbol' =>
array(
'bold' => $distFontDir . 'DejaVuSans-Bold',
'bold_italic' => $distFontDir . 'DejaVuSans-BoldOblique',
'italic' => $distFontDir . 'DejaVuSans-Oblique',
'normal' => $distFontDir . 'DejaVuSans'
),
'serif' =>
array(
'bold' => $distFontDir . 'DejaVuSans-Bold',
'bold_italic' => $distFontDir . 'DejaVuSans-BoldOblique',
'italic' => $distFontDir . 'DejaVuSans-Oblique',
'normal' => $distFontDir . 'DejaVuSans'
),
'monospace' =>
array(
'bold' => $distFontDir . 'DejaVuSans-Bold',
'bold_italic' => $distFontDir . 'DejaVuSans-BoldOblique',
'italic' => $distFontDir . 'DejaVuSans-Oblique',
'normal' => $distFontDir . 'DejaVuSans'
),
'fixed' =>
array(
'bold' => $distFontDir . 'DejaVuSans-Bold',
'bold_italic' => $distFontDir . 'DejaVuSans-BoldOblique',
'italic' => $distFontDir . 'DejaVuSans-Oblique',
'normal' => $distFontDir . 'DejaVuSans'
),
'dejavu sans' =>
array(
'bold' => $distFontDir . 'DejaVuSans-Bold',
'bold_italic' => $distFontDir . 'DejaVuSans-BoldOblique',
'italic' => $distFontDir . 'DejaVuSans-Oblique',
'normal' => $distFontDir . 'DejaVuSans'
),
'dejavu sans mono' =>
array(
'bold' => $distFontDir . 'DejaVuSansMono-Bold',
'bold_italic' => $distFontDir . 'DejaVuSansMono-BoldOblique',
'italic' => $distFontDir . 'DejaVuSansMono-Oblique',
'normal' => $distFontDir . 'DejaVuSansMono'
),
'dejavu serif' =>
array(
'bold' => $distFontDir . 'DejaVuSerif-Bold',
'bold_italic' => $distFontDir . 'DejaVuSerif-BoldItalic',
'italic' => $distFontDir . 'DejaVuSerif-Italic',
'normal' => $distFontDir . 'DejaVuSerif'
)
)
?>我知道这不是最好的方法,但它节省了很多时间
https://stackoverflow.com/questions/16384517
复制相似问题