1

我正在尝试用内置字体写出一些特殊字符,有什么办法吗?

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

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

4

2 回答 2

1

我知道这是一个旧线程,但我这个周末遇到了这个问题并且花了很长时间谷歌搜索和玩,所以这是一个节省时间的方法。 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);

与欧洲语言配合得很好

于 2019-11-24T13:51:38.530 回答
0

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

见: http: //fpdf.org/en/script/script92.php

于 2012-06-01T00:11:05.110 回答