2013-03-12 57 views
6

我希望你能幫我解決這個問題,我第一次用mPDF處理它,我認爲它很棒,但是我想用與我的網站,它的文件解釋瞭如何實現這一點,但它似乎仍然不適合我。 我所做的到現在是:在mPDF生成的文檔中使用字體

  1. 添加URL打開從谷歌三世我將後生成 <link href='http://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>文件。
  2. 然後我添加包含使用的字體 <link rel="stylesheet" href="<?php echo base_url(); ?>assets/publicidad/css/reporte.css" type="text/css"> 裏面reporte.css我已經添加了一個樣式表文件,我有一個定義中使用「打開三世」字體

    體{ font-family:'Open Sans',Sans-Serif; } 它按預期方式顯示字體。

  3. 我生成具有MPDF效果很好,但是當我想
    顯示打開三世爲文檔表示,它沒有顯示所需的字體,我下載了「打開三世」的專題信託基金文件從http://www.fontsquirrel.com/fonts/open-sans的PDF和如其在文檔中所述,添加到mPDF目錄的ttfonts文件夾內。


它後,我按照這個清晰的文檔http://mpdf1.com/manual/index.php?tid=453,但到現在爲止我沒有得到我的PDF文檔什麼我沒有做直到現在它的部分顯示所需的字體寫着「4.使用特定語言的字體,您還需要編輯配置文件(config_cp.php);讓我們想象Frutiger包含泰語所需的全套字符:「,但我不認爲這是問題所在,因爲我正在使用我放下的默認配置。

function pdf_create($html, $filename, $stream = TRUE) { 
      require_once(APPPATH . 'helpers/mpdf/mpdf.php'); 
      $mpdf = new mPDF(); 
      $mpdf->SetAutoFont(); 
      $mpdf->WriteHTML($html); 
      if ($stream) 
      { 
       $mpdf->Output($filename . '.pdf', 'D'); 
      } 
      else 
      { 
       $mpdf->Output('./uploads/temp/' . $filename . '.pdf', 'F'); 

       return './uploads/temp/' . $filename . '.pdf'; 
      } 
     } 

在我的控制器中,我這樣做。

$html = $this->load->view('publicidad/reporte_x_curso', $data, true); 
$this->load->helper('mpdf'); 
pdf_create($html, 'Reporte_por_cursos', true); 

(上面是不是由stackverflow編輯器識別)

最後我做了什麼到現在應該做的一切我想要的文檔,下面是:

$this->fontdata = array(
    "'Open Sans'" => array(
    'R' => 'OpenSans-Regular.ttf' 
    ) 

PD :我把單引號放在了我的html文檔中,但是我也沒有嘗試過,沒有成功。 我希望你能幫助我,在此先感謝。

+0

https://stackoverflow.com/questions/47150331/how-to-upload-image-on-server-using-ajax-in-cordova-build/47151317#47151317 – 2017-11-07 08:21:38

回答

12

我已經解決了我的問題,應該有字體的定義沒有空格,所以我在我的CSS字體-face聲明替換爲「opensans」和

$this->fontdata = array(
    "opensans" => array(
    'R' => 'OpenSans-Regular.ttf' 
    ) 

注意字體類型( 'OpenSans-Regular.ttf')應爲內部TTFONTS MPDF文件夾

+0

沒錯,將其添加到ttfonts /並編輯config_fonts.php並確保名稱匹配並且不包含空格。 – 2018-02-16 10:45:42

14

注的文件夾:

首先,不使用mpdf1.com的網站,它的封閉。使用https://github.com/mpdf/mpdf。存在用於版本6和7)不同的代碼

實施例(第7版):

source
1)上傳MyFont.ttf/mpdf/ttfonts
2)在/mpdf/config_fonts.php,內部$this->fontdata array,添加您的:

"my_custom_fonttt" => array( 
        'R' => 'MyFont.ttf',   //Regular- REQUIRED 
        'I' => "MyFont-Oblique.ttf", //Italic - OPTIONAL 
        'B' => "MyFont-Bold.ttf",  //Bold - OPTIONAL 
        ), 


3)那麼,無論你執行你的自定義腳本,CSS中使用my_custom_fonttt

<?php 
$mpdf=new mPDF(); 
$texttt= ' 
    <html><head><style> 
    body {font-family: "my_custom_fonttt";} 
    </style></head> 
    <body>My SAMPLE TEXTTTTT </body> 
    </html>'; 
$mpdf->WriteHTML("$texttt"); 
$mpdf->Output(dirname(__FILE__).'/new_created_file.pdf','F'); 
?> 
+5

雖然這個鏈接可能回答這個問題,但最好在這裏包含答案的基本部分,並提供參考鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 – 2014-07-14 16:07:03

+4

究竟發生了什麼:在此服務器上未找到請求的URL /manual/index.php。 2016/3/31 good call @Howdy_McGee並感謝tazo在2014年更新您的答案 – Edward 2016-03-31 09:05:26

+0

我無法找到提及的選項,但爲了防止他人幫我找到新的文檔,請訪問https:// mpdf。 github.io/。如果我能找到相關的信息,我會複製並粘貼,但我找不到它,可能其他答案對讀者來說更好。 – Eoin 2017-05-22 12:44:11

1

我面臨同樣的問題: 確保你沒有在定義字體的名稱空間,保持小寫。

它爲我工作