如果你不介意的话只有一个字符集,你可以改变每个字符集在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'
)
)
?>
我知道这是不是最好的方式,但它可以节省大量的时间
大多数库不允许您以不同的编码加载数据,而不是您明确告诉要加载的库的数据。这通常会导致问题标记。所以我真的不知道为什么你真的认为用DOMPDF这应该是不同的?也可以尝试通过所有选项来玩游戏,但如果该游戏不能快速提供任何结果,则需要找到一种不同的策略来了解正在发生的事情。 – hakre 2013-05-05 13:11:28
我做了几个选项,因为它是很难找出它是如何工作的,字符集ISO-8859-2没有任何关于它的可用信息,我GOOGLE了很多,我想UTF-8,其中每一个字符是确定! – lostika 2013-05-05 14:11:03
是的,如果您想支持所有(在计算机系统上)已知字符,UTF-8是一个不错的选择。但是,在上面的代码中,您可以在* same *字符串中执行多种编码。这永远不会奏效。相反,最好找出你的字符串最初有哪些编码。然后用特定的编码转换成UTF-8。你应该只在这里做一次重新编码。这个答案也许会让你感觉很舒服:http://stackoverflow.com/a/5159071/367456 – hakre 2013-05-05 14:13:59