Laravel dompdf自定义字体目录

问题描述 投票:0回答:1

我安装了laravel-dompdf(v0.8.5),以便为用户生成PDF文件,并希望使用一些不同的字体。

我通过在刀片文件中声明该字体来实现这一目标。

<!DOCTYPE html>
<html>
<head>
    <title>{{ $title }}</title>

    <style>
        @font-face {
            font-family: 'Jaldi';
            src: url({{storage_path('fonts/Jaldi/Jaldi-Regular.ttf')}}) format("truetype");
        }
        @font-face {
            font-family: 'Jaldi';
            src: url({{storage_path('fonts/Jaldi/Jaldi-Bold.ttf')}}) format("truetype");
            font-weight: bold;
        }

当我生成pdf时(从浏览器),我会在 storage/fonts/dompdf_font_family_cache.php:

'jaldi' => array(
    'normal' => $fontDir . '/jaldi-normal_f26068eedd4182fc16a39c0f4c1a4678',
    'bold' => $fontDir . '/jaldi-bold_b51d304a463ce577b3942eb308c7c1ff',
),

我的问题是 新文件在字体目录下生成。的一部分,是我的git仓库。所以当我在其他环境下(开发或生产)做同样的事情时。git状态不清楚了。

我试着在 config/dompdf.php 配置文件。

  "font_cache" => storage_path('tmp/font-cache/'),

  "temp_dir" => storage_path('tmp/font-cache/'),

但新文件还是在字体目录下生成的.

有什么办法吗?

php laravel dompdf
1个回答
0
投票

我不知道这是否是正常行为,但我找到了一个适合我的解决方案。

我在以下目录中创建了两个目录 storage 目录 - fontsfontsCache:

  • fonts 目录中包含 ttf 字库
  • fontsCache 目录为空,可写(chmod 777),并从我的仓库(.gitignore)中排除。

config/dompdf.php 文件包含以下配置。

"font_dir" => storage_path('fontsCache/'),
"font_cache" => storage_path('fontsCache/')

另一方面 blade 文件包含以下代码。

    <style>
        @font-face {
            font-family: 'Jaldi';
            src: url({{storage_path('fonts/Jaldi/Jaldi-Regular.ttf')}}) format("truetype");
        }
        @font-face {
            font-family: 'Jaldi';
            src: url({{storage_path('fonts/Jaldi/Jaldi-Bold.ttf')}}) format("truetype");
            font-weight: bold;
        }

通过这种方式,我将由我的版本库控制的文件和由 dompdf 实时生成的文件分开。

© www.soinside.com 2019 - 2024. All rights reserved.