การใช้ font THSarabun หรือภาษาไทย ใน mpdf 7

อันนี้เป็นเพียงตัวอย่างอย่างสั้นที่สุดที่ เพื่อ demo ให้ดูนะครับ ต้องไปประยุกต์เอาเอง

  1. ติดตั้ง mpdf โดยสั่ง composer require mpdf/mpdf
  2. สร้าง folder ชื่อ font แล้วเอา font ใส่ลงไป (พวกไฟล์ .ttf เช่น Sarabun-Regular.ttf)
  3. code ตามนี้ครับ (จุดสำคัญคือบรรทัด 18 key ของ array ต้องเป็นตัวเล็กหมด)
    Plain text
    Copy to clipboard
    Open code in new window
    EnlighterJS 3 Syntax Highlighter
    <?php
    require_once __DIR__ . '/vendor/autoload.php';
    $defaultConfig = (new Mpdf\Config\ConfigVariables())->getDefaults();
    $fontDirs = $defaultConfig['fontDir'];
    $defaultFontConfig = (new Mpdf\Config\FontVariables())->getDefaults();
    $fontData = $defaultFontConfig['fontdata'];
    $mpdf = new \Mpdf\Mpdf([
    'fontDir' => array_merge($fontDirs, [
    __DIR__ . '/font',
    ]),
    'fontdata' => $fontData + [
    // จุดสำคัญคือตรงชื่อ font ตรงนี้ต้องตัวเล็กหมดครับ
    'th_sarabun' => [
    'R' => 'Sarabun-Regular.ttf',
    ]
    ],
    'default_font' => 'th_sarabun',
    ]);
    $mpdf->WriteHTML('<p>ทดสอบภาษาไทย</p>');
    $mpdf->Output();
    <?php require_once __DIR__ . '/vendor/autoload.php'; $defaultConfig = (new Mpdf\Config\ConfigVariables())->getDefaults(); $fontDirs = $defaultConfig['fontDir']; $defaultFontConfig = (new Mpdf\Config\FontVariables())->getDefaults(); $fontData = $defaultFontConfig['fontdata']; $mpdf = new \Mpdf\Mpdf([ 'fontDir' => array_merge($fontDirs, [ __DIR__ . '/font', ]), 'fontdata' => $fontData + [ // จุดสำคัญคือตรงชื่อ font ตรงนี้ต้องตัวเล็กหมดครับ 'th_sarabun' => [ 'R' => 'Sarabun-Regular.ttf', ] ], 'default_font' => 'th_sarabun', ]); $mpdf->WriteHTML('<p>ทดสอบภาษาไทย</p>'); $mpdf->Output();
    <?php
    
    require_once __DIR__ . '/vendor/autoload.php';
    
    $defaultConfig = (new Mpdf\Config\ConfigVariables())->getDefaults();
    $fontDirs = $defaultConfig['fontDir'];
    
    $defaultFontConfig = (new Mpdf\Config\FontVariables())->getDefaults();
    $fontData = $defaultFontConfig['fontdata'];
    
    
    $mpdf = new \Mpdf\Mpdf([
        'fontDir' => array_merge($fontDirs, [
            __DIR__ . '/font',
        ]),
        'fontdata' => $fontData + [
            // จุดสำคัญคือตรงชื่อ font ตรงนี้ต้องตัวเล็กหมดครับ
            'th_sarabun' => [
                'R' => 'Sarabun-Regular.ttf',
            ]
        ],
        'default_font' => 'th_sarabun',
        
    ]);
    
    $mpdf->WriteHTML('<p>ทดสอบภาษาไทย</p>');
    $mpdf->Output();
  4. ลองทดสอบครับ ใช้ได้เลย