【问题标题】:php mPDF, impossible to set font-family and font-sizephp mPDF,无法设置字体系列和字体大小
【发布时间】:2017-08-12 11:28:44
【问题描述】:

好吧,在花了这么多时间阅读他们的文档和我的测试之后,我决定咨询 SO 社区寻求帮助。

我使用 mPDF 从 HTML 生成 pdf。该库工作正常,生成 pdf 等。

但我无法根据需要设置 font-family 和 font-size。

我试过的代码:

$mpdf = new mPDF('c', 'A4');
$mpdf->CSSselectMedia='mpdf';
$mpdf->setAutoTopMargin = 'stretch';
$mpdf->setAutoBottomMargin = 'stretch';
$mpdf->setBasePath($url);
$mpdf->SetHeader($url);
$mpdf->WriteHTML($html);
$mpdf->SetFooter($url);
$mpdf->Output($filename.'.pdf', 'I');

在我的带有 mpdf 媒体的样式表中,我有一堆处理所有 html 代码的样式。而且我也有一些关于字体系列和字体大小的规则,即:

body{
        border: none;
        font-size: 10pt;
        colosr:#000;
        font-family: Times, Georgia, "Times New Roman", serif !important;
    }

但字体设置根本没有应用。

我还尝试了以下实例化参数:

$mpdf = new mPDF('UTF-8', 'A4',9, 'dejavuserif');

但还是一无所获。我的 pdf 中还有无衬线字体,而且尺寸也很大。

有人能解释一下吗?

【问题讨论】:

标签: php html css pdf fonts


【解决方案1】:

您可以通过两种方式将字体添加到生成的 pdf 中:

1.将字体设置为 mpdf

将字体保存在 mpdf lib 的 ttfonts 文件夹中。然后,在 config_fonts.php 文件中在数组中添加你的字体:

$this->fontdata = 数组( "YourNewFont" => 数组( 'R' => "YourNewFont.ttf"));

然后使用 :

将字体设置为 mpdf 对象

$mpdf->SetFont('YourNewFont');

现在,你的堡垒已经设置好了。使用 $mpdf->WriteText('My Text');将使用设置的字体将文本添加到 pdf。

2。在 Html 中使用字体

使用 @font-face {}

在 css 文件中添加您的字体系列

然后,导入该 css 文件,如下所示:

$stylesheet = file_get_contents('MyStyleWithFont.css');

$mpdf->WriteHTML($stylesheet,1);

现在,您可以将您的字体与 html 一起使用。为 css 文件或内联 html 中的文本定义字体系列。使用 $mpdf->WriteHTML(My Text); 打印 html。

【讨论】:

  • 如何设置字体大小?
【解决方案2】:

我知道我迟到了,希望将来对某人有所帮助。 在创建 mPDF 对象时,将 mod 参数设置为 'UTF-8' 或 ' ' 而不是 'c'。 'c' 将强制系统仅使用核心字体,从而忽略自定义字体。

$mpdf = new mPDF('UTF-8','A4')

注意:这适用于 mPDF v6 及以下版本

【讨论】:

    猜你喜欢
    • 2012-12-21
    • 2016-03-09
    • 2015-12-08
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    • 2016-03-17
    • 2011-12-01
    • 2016-06-04
    相关资源
    最近更新 更多