DomPDF最新版本0.8.2中的自定义字体问题

时间:2018-01-08 05:35:31

标签: php css fonts dompdf

我正在使用DomPDF的作曲家安装。所以我不能使用自定义字体。我使用了font-face选项,但字体不适用于PDF格式。

$dompdfOptions->set('fontDir', CSSPATH);// for default fonts
$dompdfOptions->set('fontDir', FONTSPATH);// for custom fonts
$dompdfOptions->set('defaultMediaType', 'all');
$dompdfOptions->set('isFontSubsettingEnabled', true);
$dompdf = new Dompdf($dompdfOptions);

但字体不适用。

如果我遵循风格:

"font-family: Georgia;" // Georgia is example

不工作但如果我使用

"font: 24px Georgia;"

字体工作但是如果我添加斜体/粗体等字体样式,它再次无效。

请告诉我这是什么问题。

由于

3 个答案:

答案 0 :(得分:1)

我已在Custom Fonts中创建了使用DomPDF的演示。

<?php
$html = '<!DOCTYPE html>
<html lang="en" >
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
    <title>DUMMY DOM PDF</title>
    <style>        
        @import url("https://fonts.googleapis.com/css?family=Joti+One");
        .joti-font {font-family: "Joti One", cursive;}
    </style>
</head>
<body>
<div class="joti-font">This is Test PDF</div>
</body>
</html>';

require_once 'dompdf/autoload.inc.php';

use Dompdf\Dompdf;

$dompdf = new Dompdf();

$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'landscape');
$dompdf->render();
$dompdf->stream("codex",array("Attachment"=>0));
?>

enter image description here

答案 1 :(得分:0)

使用CSS即可。我们需要在CSS中使用字体而不是字体系列。

@font-face{
font-family: myFontName;
src:url('http:://yourwebsite.com/myFontName.ttf');
}
p{
font: myFontName;
}

答案 2 :(得分:0)

对于您的自定义字体问题,mpdf比DomPDF和其他版本更好。它具有以下功能

  1. add new fonts
  2. 全面的Unicode支持
  3. 复杂脚本支持 3.1从右到左的语言(希伯来语,阿拉伯语等) 3.2印度文,老挝文,藏文等 3.3垂直写作
  4. TrueType集合
  5. Unicode补充平面

如何使用mpdf添加新字体

  1. 将字体目录添加到fontDir配置参数或通过 调用$ mpdf-> AddFontDirectory()方法
  2. 在fontData参数数组中定义字体文件的详细信息
  3. 通过在HTML代码中将其指定为CSS来访问字体 字体家族
  4. 通过定义自定义来指定字体的语言 Mpdf \ Language \ LanguageToFontInterface和 Mpdf \ Language \ ScriptToLanguage实现