Fpdf和特殊字符

时间:2012-05-16 20:18:22

标签: php character-encoding fpdf

我正在尝试用内置字体写出一些特殊字符,有没有办法做到这一点?

$ str ='ščťžýáíéäúň§ôúőűáéóüöűú'; $ str = iconv('UTF-8','windows-1252',$ str);

结果是一个字母Š,不太好。 :)

2 个答案:

答案 0 :(得分:1)

我知道这是一个老话题,但是这个周末我遇到了这个问题,并且花了很长时间在Google上搜索和玩耍,因此可以节省时间。 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);

使用欧洲语言制作出色的作品

答案 1 :(得分:0)

您需要使用FPDF的tFPDF派生。 tFPDF使用PHP多字节字符串函数并生成以UTF-8编码的输出。 FPDF没有。您还需要使用支持您要使用的所有Unicode字符的字体。最常见的是,我会使用Arial。

请参阅:http://fpdf.org/en/script/script92.php