我正在尝试用内置字体写出一些特殊字符,有什么办法吗?
$str = 'ščťžýáíéäúň§ôúőűáéóüöűú'; $str = iconv('UTF-8', 'windows-1252', $str);
结果是一个字母Š,不太好。:)
我正在尝试用内置字体写出一些特殊字符,有什么办法吗?
$str = 'ščťžýáíéäúň§ôúőűáéóüöűú'; $str = iconv('UTF-8', 'windows-1252', $str);
结果是一个字母Š,不太好。:)
我知道这是一个旧线程,但我这个周末遇到了这个问题并且花了很长时间谷歌搜索和玩,所以这是一个节省时间的方法。 http://fpdf.org/en/script/script92.php是使用变音符号(重音字符)的方法。但是您需要向其中添加一些代码...将其插入第 617 行
/* Modified by Vinod Patidar due to font key does not match in dejavu bold.*/
if ( $family == 'dejavu' && !empty($style) && ($style == 'B' || $style == 'b') ) {
$fontkey = $family.' '.strtolower($style);
} else {
$fontkey = $family.$style;
}
/* Modified end here*/
然后改变
if($family=='arial')
$family = 'helvetica';
到
if($family=='arial'||$family='dejavu')
$family = 'helvetica';
然后不要使用示例“DejaVu Sans Condensed”中的字体,因为 Condensed 似乎意味着粗体版本不包含所有字符
您可能还需要从普通 fpdf.php 脚本添加 getPageWidth 和 getPageHeight 方法,因为它比 tfpdf.php 更新!
有了上面的改动
$pdflabel->AddFont('DejaVu','','DejaVuSans.ttf',true);
$pdf->AddFont('DejaVu','B','DejaVuSans-Bold.ttf',true);
与欧洲语言配合得很好
您需要使用 FPDF 的 tFPDF 衍生物。tFPDF 使用 PHP 多字节字符串函数并生成使用 UTF-8 编码的输出。FPDF 没有。您还需要使用支持您要使用的所有 Unicode 字符的字体。最常见的是,我将使用 Arial。
见: http: //fpdf.org/en/script/script92.php