提问人:nanii 提问时间:10/25/2023 最后编辑:nanii 更新时间:11/6/2023 访问量:84
为什么 laravel-dompdf 不加载粗体的 font-face?
Why doesn't laravel-dompdf load font-face for bold?
问:
我在我的系统上使用laravel-dompdf来输出pdf。
我最近更新了 php 和 laravel。
但是,有些 pdf 是乱码。
字体在 css 中由 font-face 定义。
字体在 public/assets/pdf.css 中定义。
用 <th> 括起来的字符是乱码。
字体粗细为“粗体”的字符也会出现乱码。
为什么会这样?
public/assets/pdf.css 中定义的 .a 类。被反映出来。
在更新之前,它在 php7.4.33 和 laravel6.20.44 中没有乱码。
我从一位朋友那里听说,在 utf-8 中支持粗体需要两个字体定义,所以我定义了两个字体定义,但它们没有被反映出来。
public/assets/pdf.css 中定义的 .a 类。被反映出来。
公共/资产/pdf.css
.a {
font-size: 80px;
}
html {
font-size: 10px;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
@font-face {
font-family: mcs;
src: url('../fonts/mcs.TTF');
}
@font-face {
font-family: mcs;
font-weight: bold;
font-style: bold;
src: url('../fonts/mcs.TTF');
}
body {
font-family: ipag;
font-weight: normal !important;
}
resources/views/pdf.blade.php
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link href="{{ public_path('/assets/pdf.css') }}" rel="stylesheet" type="text/css" media="all">
<style>
</style>
</head>
<body>
<table>
<tr>
<th>カタカナ</th>
<td>カタカナ</td>
</tr>
<tr>
<th>漢字</th>
<td>漢字</td>
</tr>
<tr>
<th>ひらがな</th>
<td>ひらがな</td>
</tr>
</table>
<p class="a">あいうえお</p>
<p style="font-weight: bold">あいうえお<p>
</body>
</html>
控制器中的功能
$export = $this->pdf->loadView('pdf');
return $export->download('test.pdf');
TTF 文件在 public/fonts/mcs 中不存在问题。TTF的。
sh-4.2# php -v
PHP 8.1.23 (cli) (built: Sep 15 2023 21:56:29) (NTS)
sh-4.2# php 工匠 --version
Laravel Framework 9.52.16
我已经安装了mbstring扩展。
yum install php-mbstring
输出pdf
答:
0赞
nanii
11/6/2023
#1
我将 barryvdh/laravel-dompdf 更新到 1.0.0,稍后它有所改进。目前尚不清楚它为什么会有所改善。
评论
font-family: ipag;
body
mcs