我想使用Google字体,与Laravel DomPDF 0.7.*一起使用,但我很难让它们显示。事实上,我无法让任何自定义字体工作,不仅仅是Google字体。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="https://fonts.googleapis.com/css?family=Caveat" rel="stylesheet">
<style type="text/css">
.signature {
font-family: 'Caveat', cursive !important;
font-size: 30px;
}
</style>
</head>
<body>
<p class="signature">Name</p>
</body>
</html>
这是显示出来的内容,应该是一种手写字体。
在dompdf.php
配置文件中,字体目录和字体缓存都是可写的。"DOMPDF_FONT_DIR" => storage_path('app/tmp/'),
"DOMPDF_FONT_CACHE" => storage_path('app/tmp/'),
这里是控制器代码:
public function download(Request $request, string $contractKey)
{
$item = Item::findOrFail($contractKey);
$body = @$item->contract;
$pdf = PDF::loadView('pdf.contract', [
'body' => $this->cleanContract($body),
'docId' => md5($item->id),
'item' => $item,
'ip' => $ip = @$request->ips()[1] ?: $request->ip(),
]);
$pdf->output();
$dom_pdf = $pdf->getDomPDF();
$canvas = $dom_pdf->get_canvas();
$canvas->page_text($canvas->get_width() - 70, $canvas->get_height() - 30, "Page {PAGE_NUM} of {PAGE_COUNT}", null, 10, [0, 0, 0]);
return $pdf->stream();
}
.signature
的CSS中尝试使用letter-spacing: 1px;
。 - Quynh Nguyen0.8.0
。 - Sandeesh