Bangla unicode 字体未在 mpdf 中显示

Posted

技术标签:

【中文标题】Bangla unicode 字体未在 mpdf 中显示【英文标题】:Bangla unicode fonts not displaying in mpdf 【发布时间】:2019-07-18 06:39:02 【问题描述】:

我正在使用 mpdf 生成 pdf。虽然文档包含孟加拉 unicode 字体,但它在 pdf 文档中是不可见的。

我已在 config/pdf.php 中正确包含字体

'bangla' => [
            'R'  => 'SolaimanLipi.ttf', // regular font
            'B'  => 'SolaimanLipi.ttf', // optional: bold font
            'I'  => 'SolaimanLipi.ttf', // optional: italic font
            'BI' => 'SolaimanLipi.ttf', // optional: bold-italic font
            'useOTL' => 0xFF,   
            'useKashida' => 75, 
        ]

渲染孟加拉语文本的CSS样式

.textLayer > div 
color: transparent;
white-space: pre;
cursor: text;
transform-origin: 0% 0%;

当我更改颜色时,它会显示重复的文本。

Output

【问题讨论】:

【参考方案1】:

您的配置是正确的。请确保 ttfonts 文件夹中有字体文件。然后在你的html文件中你这样写

    html, body, div 
      font-family: bangla;
    

我使用了字体系列名称bangla,因为您在这里配置了它,

'bangla' => [
        'R'  => 'SolaimanLipi.ttf', // regular font
        'B'  => 'SolaimanLipi.ttf',
        ..........
        'useOTL' => 0xFF,
        'useKashida' => 75]

现在你应该像这样调用 mPDF,

$mpdf = new \Mpdf\Mpdf([
            'default_font' => 'bangla',
            'mode' => 'utf-8'
        ]);

现在,对于这样的 css 调用,

.textLayer > div 
   font-family: bangla;
   color: transparent;
   white-space: pre;
   cursor: text;
   transform-origin: 0% 0%;
 

它应该工作。

【讨论】:

以上是关于Bangla unicode 字体未在 mpdf 中显示的主要内容,如果未能解决你的问题,请参考以下文章

将字体添加到 mPDF

在 mPDF 7 中注册自定义字体时遇到问题

无法在mPDF 7中注册自定义字体

如何使用 FPDF 和 mPDF 嵌入字体

如何在yii2中向kartik yii-mpdf添加自定义字体

如何将字体设置为 mPDF 中的特定 div?