2017-09-02 28 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目錄中。