如何在 MPDF 中使用 Font Awesome?
How to use Font Awesome with MPDF?
我正在使用 Zend Framework 并使用 mpdf 创建 PDF。
我正在尝试使用 fontawesome 来表示一些文章,但是 font awesome 的字体没有正确呈现
下面是代码。
$stylesheet = file_get_contents("https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css");
$stylesheet .= file_get_contents("https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css");
$this->mpdf->WriteHTML($stylesheet,1);
$this->mpdf->WriteHTML($html,2);
$this->mpdf->allow_charset_conversion = true;
$this->mpdf->charset_in = 'windows-1252';
$this->mpdf->Output();
我在 html
中使用的代码
<span class="company-name"> name of the company</span>
提前致谢。
编辑:如今,这是一种过时的方法,只能在遗留系统上使用。
我推荐,修改其最新版本的mPDF字体and/or,如果它是由Composer安装的,在实例化时传递参数class。
简单的方法:
将 fontawesome-webfont.ttf
文件复制到 /mPDF/ttfonts/
目录。
编辑/mPDF/config_fonts.php
,搜索$this->fontdata
开始的数组并添加:
"fontawesome" => array(
'R' => "fontawesome-webfont.ttf",
),
- 使用新字体系列正确更改文档 CSS。例如:
$stylesheet = '.company-name { font-family: fontawesome; }';
- 实例化class时,让第一个参数为空:
例如:
$mpdf = new mPDF();
或
$mpdf = new mPDF('', 'A4');
我使用 mPDF 6.0 进行了测试,它运行良好。
此外,mPDF 手册解释了如何使用更多选项进行操作:
Fonts in mPDF 6.x
Font Awesome 5.x 和 mPDF 7.x 的最新解决方案,当您不想从 mPDF 编辑源 files/dirs 时:https://mpdf.github.io/fonts-languages/fonts-in-mpdf-7-x.html
我的用例,这提供了 mPDF 提供的字体、fontawesome 和另一种自定义字体(在本例中为 ibmplex)的使用。请注意,当提供 'ibmplex' 和 'fontawesome' 等字体名称时,它们是小写的。为避免混淆字体为何不起作用,我建议使用小写字母且名称不要有空格。
$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__ . '/../../resources/fonts',
]),
'fontdata' => $fontData + [
'ibmplex' => [
'R' => 'IBMPlexSans-Regular.ttf',
'B' => 'IBMPlexSans-Bold.ttf',
'I' => 'IBMPlexSans-Italic.ttf',
],
'fontawesome' => [
'R' => 'fa-solid-900.ttf'
],
],
'default_font' => 'ibmplex',
'format' => 'A4'
]);
然后你可以使用
<span style="font-family: fontawesome;"></span>
根据 https://fontawesome.com/cheatsheet -- 请注意 f3ed 是这种情况下的实际图标。
实际上,如果您安装了 mPdf with composer,请将以下行添加到位于 vendor\mpdf\mpdf\src\Config\FontVariables.php
的文件中
"fontawesome" => [
'R' => "fontawesome-webfont.ttf",
],
在 'fontdata' 部分内
我正在使用 Zend Framework 并使用 mpdf 创建 PDF。
我正在尝试使用 fontawesome 来表示一些文章,但是 font awesome 的字体没有正确呈现
下面是代码。
$stylesheet = file_get_contents("https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css");
$stylesheet .= file_get_contents("https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css");
$this->mpdf->WriteHTML($stylesheet,1);
$this->mpdf->WriteHTML($html,2);
$this->mpdf->allow_charset_conversion = true;
$this->mpdf->charset_in = 'windows-1252';
$this->mpdf->Output();
我在 html
中使用的代码<span class="company-name"> name of the company</span>
提前致谢。
编辑:如今,这是一种过时的方法,只能在遗留系统上使用。
我推荐
简单的方法:
将
fontawesome-webfont.ttf
文件复制到/mPDF/ttfonts/
目录。编辑
/mPDF/config_fonts.php
,搜索$this->fontdata
开始的数组并添加:
"fontawesome" => array(
'R' => "fontawesome-webfont.ttf",
),
- 使用新字体系列正确更改文档 CSS。例如:
$stylesheet = '.company-name { font-family: fontawesome; }';
- 实例化class时,让第一个参数为空:
例如:
$mpdf = new mPDF();
或
$mpdf = new mPDF('', 'A4');
我使用 mPDF 6.0 进行了测试,它运行良好。
此外,mPDF 手册解释了如何使用更多选项进行操作: Fonts in mPDF 6.x
Font Awesome 5.x 和 mPDF 7.x 的最新解决方案,当您不想从 mPDF 编辑源 files/dirs 时:https://mpdf.github.io/fonts-languages/fonts-in-mpdf-7-x.html
我的用例,这提供了 mPDF 提供的字体、fontawesome 和另一种自定义字体(在本例中为 ibmplex)的使用。请注意,当提供 'ibmplex' 和 'fontawesome' 等字体名称时,它们是小写的。为避免混淆字体为何不起作用,我建议使用小写字母且名称不要有空格。
$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__ . '/../../resources/fonts',
]),
'fontdata' => $fontData + [
'ibmplex' => [
'R' => 'IBMPlexSans-Regular.ttf',
'B' => 'IBMPlexSans-Bold.ttf',
'I' => 'IBMPlexSans-Italic.ttf',
],
'fontawesome' => [
'R' => 'fa-solid-900.ttf'
],
],
'default_font' => 'ibmplex',
'format' => 'A4'
]);
然后你可以使用
<span style="font-family: fontawesome;"></span>
根据 https://fontawesome.com/cheatsheet -- 请注意 f3ed 是这种情况下的实际图标。
实际上,如果您安装了 mPdf with composer,请将以下行添加到位于 vendor\mpdf\mpdf\src\Config\FontVariables.php
的文件中"fontawesome" => [
'R' => "fontawesome-webfont.ttf",
],
在 'fontdata' 部分内