我上传了一个小例子here。它由3个文件组成。

我想使用DOMPDF在服务器端渲染Laravel视图。我意识到我正在使用的Open Sans字体无法正常工作,所以我做了一个更简单的测试,该测试显示了相同的问题。

如果您尝试调用index.php,wou将获得此PDF,其中Lorem标题不使用Open Sans呈现。

php - 用Dompdf指定字体?-LMLPHP

composer.json

{
    "name": "nowox/test-dompdf",
    "require": {
        "dompdf/dompdf": "^0.8.3",
        "webfontkit/open-sans": "^1.0"
    }
}


index.php

<?php

require 'vendor/autoload.php';

use Dompdf\Dompdf;
use Dompdf\Options;

$options = new Options();
$options->set('defaultFont', 'Open Sans');
$options->set('fontDir', 'vendor/webfontkit/open-sans/fonts');

$dompdf = new Dompdf($options);
$dompdf->loadHtml(file_get_contents('template.html'));


$dompdf->setPaper('A4');
$dompdf->render();
$dompdf->stream();


index.html

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <link rel="stylesheet" type="text/css" href="vendor/webfontkit/open-sans/open-sans.min.css"/>
        <style>
        * {
            font-family: 'Open Sans';
        }
        h1 {
            font-family: 'Open Sans';
        }
        </style>
    </head>
    <body>
        <h1>Lorem</h1>
        <p>Lorem ipsum</p>
    </body>
</html>

最佳答案

Dompdf(不超过0.8.3,包括0.8.3)不支持数字字体粗细(see issue #675)。您必须将样式表修改为仅将“粗体”或“普通”用作字体粗细。

关于php - 用Dompdf指定字体?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55142057/

10-14 21:14
查看更多