php - Dompdf-Laravel 不能使用 Unicode 字符

标签 php laravel

我将 Laravel 5.5 与 DOMPDF 一起使用,它对英语工作正常,但不适用于 Unicode,它总是输出 ????我的象征

Controller

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use PDF;

class PdfController extends Controller
{
    public function export(){
        $data['title']="Print Report";
        $pdf = PDF::loadView('pdf.invoice', $data);
        return $pdf->download('invoice.pdf');
    }
}

Blade
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <style>
        @font-face {
            font-family: khmer;
            font-style: normal;
            font-weight: 400;
            src: url({{asset('fonts/khmer.ttf')}}) format('true-type');
        }
    </style>

</head>
<body>
    កម្ពុជាក្រោម
</body>
</html>

结果 ?????????

最佳答案

@计划-B

我使用这个包,它的工作方式与此相同 Dompdf-Laravel库( Dompdf-Laravel 库适用于其他语言,但不适用于高棉字体)。

  • composer require niklasravnsborg/laravel-pdf
  • 它有一个关于字体安装的好文档:https://mpdf.github.io/
  • 安装软件包后,转到其存储库 https://github.com/niklasravnsborg/laravel-pdf阅读说明。
  • 运行 php artisan vendor:publish从命令提示符选择库。您将获得 pdf.phpconfig目录
  • 现在您需要从文档 https://mpdf.github.io/fonts-languages/available-fonts-v6.html 中选择合适的高棉字体
  • 在文档中,它推荐了两个高棉字体网站。您必须从网站下载字体,否则字体将无法正确显示。
  • 下载字体并存储在项目中的某处 - 默认情况下,config/pdf.php选择 resources/fonts目录
    这是我在 pdf.php 中的设置

  • // some code here...
    'font_path' => base_path('resources/fonts/'),
      'font_data' => [
        "khmerosmoul" => [/* Khmer */
          'R' => "KhmerOSmuol.ttf",
          'useOTL' => 0xFF,
        ],
        "khmerosmoullight" => [/* Khmer */
          'R' => "KhmerOSmuollight.ttf",
          'useOTL' => 0xFF,
        ],
        "khmerosbokor" => [/* Khmer */
          'R' => "KhmerOSBokor.ttf",
          'useOTL' => 0xFF,
        ],
        "khmerosmoulpali" => [/* Khmer */
          'R' => "KhmerOSmuolpali.ttf",
          'useOTL' => 0xFF,
          'useKashida' => 75
        ]
        // ...add as many as you want.
      ]
    

    注意:您可能会遇到 pdf html 结构的问题。从 repo 复制其模板示例并根据需要重新设计。
    https://github.com/niklasravnsborg/laravel-pdf/blob/master/tests/views/exposify-expose.html

    关于php - Dompdf-Laravel 不能使用 Unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48676957/

    相关文章:

    php - 在 Laravel 中从数据库中检索和显示单个记录

    PHP插入Mysql失败(自增)

    php - 查询未按顺序返回

    Laravel 工作台 Composer 更新

    javascript - 如何在下面的代码中传递文本区域数据?

    javascript - piwik 无法在 HTTPS 中工作

    php - Laravel 模型关系和模型事件

    php - 如何在我的表中获取最后一个 reasonID?

    PHP:从递归函数返回一个数组

    php - 如何在php中将二维数组转换为一维数组?