2017-09-02 120 views
0

我知道这个问题是不是第一次问,但所有其他线程都没有帮助我得到它的工作。 我想在我的mPDF调用中获得自己的字体。 在阅读该版本7时,我可以加载自己的字体,而无需更改config_fonts.php。这里是我的尝试:加载自己的字体在mPDF的问题

$mpdf = new \mPDF('utf-8','A4',''); 

$mpdf->fontDir = './assets/fonts/'; 
$mpdf->fontdata = array(
    "qanela" => array(
     'R' => "QanelasSoft-Regular.ttf", 
     'B' => "QanelasSoft-Bold.ttf", 
    ), 
); 

$mpdf->SetFont('qanela'); 

与此代码我得到的errormessage的

MPDF错误 - 字体不支持 - dejavusanscondensed。

它是从

MPDF /供应商/ MPDF/MPDF名为/ mpdf.php

上3809线与

如果(!isset($此 - > fontdata [$ family] [$ stylekey])||!$ this-> fontdata [$ family] [$ stylekey]){ throw new MpdfException('mPDF Error - Font is not supported - '。$ family。' '。$ st YLE); }

厚福有人能帮助我。

干杯

+0

我没有看到你的代码和错误之间的关系,这是关于一个完全的其他字体? –

+0

嗨,我不知道。我不使用dejavusanscondensed任何地方。 我觉得这个错误来自我的数组,我加载我的新字体。 – JFS

+0

我认为DejaVu是标准字体,它应该永远在那里。 –

回答

0

你的代码示例是有点怪异:

  • 为了能够使用fontDir属性,您必须使用MPDF 7.x的
  • 你MPDF实例的创建new \mPDF表明6.x的 - 7.x拥有命名空间签名new \Mpdf\Mpdf()
  • 在6.x中,您可以通过设置_MPDF_SYSTEM_TTFONTS常量来设置自己的字体目录:

define('_MPDF_SYSTEM_TTFONTS', './assets/fonts/');


在读了第7版,我可以载入我自己的字体不改变config_fonts.php

有以V 7.所有的变化没有config_fonts.php文件配置可以在构造函数$config参数中完成,或者在创建对象后通过更改mPDF实例的fontdata属性来完成 - 就像您正在尝试的那样。见下文。


同时,尝试将字体设置附加到fontData属性,而不是覆盖它的内容:

$mpdf->fontdata['qanela'] = 
    array(
     'R' => "QanelasSoft-Regular.ttf", 
     'B' => "QanelasSoft-Bold.ttf", 
    ); 
+0

嗨,谢谢你的对我使用6.1版本。我认为我使用v 7的洞时间。 但它也在Beta中解释了为什么文档在版本6停止。 – JFS

+0

7.x的文档正在其github repo的“development”分支中准备https:// github.com/mpdf/mpdf.github.io。不太舒服,但信息可以在那里找到。 – Finwe

0

你不希望覆盖整个fontdata阵列(这是你在做什么)。相反,请在其末尾添加新记录。

$mpdf->fontdata['qanelasSof'] = array(
    'R' => "QanelasSoft-Regular.ttf", 
    'B' => "QanelasSoft-Bold.ttf", 
); 

然后确保您的TTF字体文件存储在ttfonts目录中。