Meg*_*Fox 4 zend-framework mpdf font-awesome
我正在使用Zend Framework并使用mpdf创建PDF.
我试图使用fontawesome来表示一些文章,但字体真棒的字体下面没有正确呈现代码.
$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();
Run Code Online (Sandbox Code Playgroud)
我在html中使用的代码
<span class="company-name"> name of the company</span>
Run Code Online (Sandbox Code Playgroud)
提前致谢.
Lor*_*con 11
简单的方法:
1)将fontawesome-webfont.ttf文件复制到/mPDF/ttfonts/目录中.
2)编辑/mPDF/config_fonts.php,搜索启动的数组$this->fontdata并添加到其中:
"fontawesome" => array(
'R' => "fontawesome-webfont.ttf",
),
Run Code Online (Sandbox Code Playgroud)
3)使用新的字体系列正确更改文档CSS.例如.:
$stylesheet = '.company-name { font-family: fontawesome; }';
Run Code Online (Sandbox Code Playgroud)
4)实例化类时,将第一个参数设为空白:
例如.:
$mpdf = new mPDF();
Run Code Online (Sandbox Code Playgroud)
要么
$mpdf = new mPDF('', 'A4');
Run Code Online (Sandbox Code Playgroud)
我用mPDF 6.0进行了测试,但它确实有效.
此外,mPDF手册解释了如何使用更多选项: mPDF 6.x中的字体
当您不想编辑 mPDF 中的源文件/目录时,Font Awesome 5.x 和 mPDF 7.x 的最新解决方案: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'
]);
Run Code Online (Sandbox Code Playgroud)
然后你可以使用
<span style="font-family: fontawesome;"></span>
Run Code Online (Sandbox Code Playgroud)
根据https://fontawesome.com/cheatsheet - 请注意,在本例中f3ed是实际图标。