DomPDF中的自定义字体

时间:2017-04-03 20:18:42

标签: php pdf-generation dompdf

我在让自定义字体在DOMPDF中工作时遇到问题。我使用Drupal 7作为我的后端,但我不认为这与我遇到的问题特别相关。当我直接返回HTML时,我的自定义字体可以工作:

<?php
$HTML = <<<HTML

<!DOCTYPE html>
<html>
<head>

<style>

@font-face {
font-family: 'PressStart2PRegular';
    src: url('http://fontlibrary.org/assets/fonts/press-start-2p/6b0a4bbcec8eb53940cbfcb409a788ee/74496d9086d97aaeeafb3085e9957668/PressStart2PRegular.ttf') format('truetype');
font-weight: normal;
font-style: normal;
  }

</style>
</head>

<body>
<p><span class="fa fa-envelope"></span> envelope</p>
<span style="font-family: 'PressStart2PRegular'">THwabubu Thwabubu thwabubu</span>
<p style="font-family: PressStart2PRegular;">dsafda</p>
</body>
</html>

HTML;

echo $HTML;
?>

但是,当我使用DOMPDF库返回相同的内容时,我的自定义字体不适用:

<?php
$HTML = <<<HTML

<!DOCTYPE html>
<html>
<head>

<style>

@font-face {
font-family: 'PressStart2PRegular';
src: url('http://fontlibrary.org/assets/fonts/press-start-2p/6b0a4bbcec8eb53940cbfcb409a788ee/74496d9086d97aaeeafb3085e9957668/PressStart2PRegular.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}

</style>
</head>

<body>
<p><span class="fa fa-envelope"></span> envelope</p>
<span style="font-family: 'PressStart2PRegular'">THwabubu Thwabubu thwabubu</span>
<p style="font-family: PressStart2PRegular;">dsafda</p>
</body>
</html>

HTML;

//DomPDF Stuffs
require_once "sites/all/libraries/dompdf/autoload.inc.php";
use Dompdf\Dompdf;
$dompdf = new Dompdf();
$dompdf->load_html($HTML);
$dompdf->setPaper('A4', 'portrait');
$dompdf->render();
$dompdf->stream();
?>

根据我在DOMPDF文档中读到的内容,以及这个答案:Dompdf and set different font-family我觉得我在DOMPDF中使用自定义字体的可接受参数进行操作,但很明显,有些事情是错误的。我正在使用DOMPDF版本0.8.0。我知道这与其他问题非常相似......但我无法弄清楚为什么这个实例无效。

1 个答案:

答案 0 :(得分:2)

这最终成为权限问题。一旦我更改了DomPDF库文件夹的权限以使其可写,我的字体就按预期开始工作了。