php mPDF,无法设置font-family和font-size

时间:2017-03-21 00:14:30

标签: php html css pdf fonts

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

我使用mPDF从HTML生成pdf。图书馆工作正常,pdf制作等。

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

我试过的代码:

void reverse_word(char *word, int len){
    int i;
    int j = strcspn(word," ");
    int k = j;
    int check = k/2; // for keeping track of the middle char

    for (i = 0;  i< len ; ++i) {

        if(i == check) {
            j = strcspn((word+k)+1," ");  // get the next space if there is any
            i = k+1;
            j = j+k+1;
            k = j;
            check = i + ((j-i)/2);

        }

        --j;
        char c = word[i];
        word[i] = word[j];
        word[j] = c;
    }

}

在我的mpdf媒体样式表中,我有很多样式处理所有的HTML代码。我也有一些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');

但字体设置根本没有说明。

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

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

但仍然没有。我在pdf中仍然有sans-serif,而且尺寸非常大。

有人可以对此有所了解吗?

2 个答案:

答案 0 :(得分:2)

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

<强> 1。将字体设置为mpdf

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

  

$ this-&gt; fontdata = array(       &#34; YourNewFont&#34; =&GT;阵列(           &#39; R&#39; =&GT; &#34; YourNewFont.ttf&#34));

然后使用以下命令将字体设置为mpdf对象:

  

$ mpdf-&GT; setfont程序(&#39; YourNewFont&#39);

现在,你的fornt已经设定好了。使用$ mpdf-&gt; WriteText(&#39;我的文字&#39;);将使用设置字体将文本添加到pdf。

<强> 2。在Html中使用字体

使用 @ font-face {}

在css文件中添加字体系列

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

  

$ stylesheet = file_get_contents(&#39; MyStyleWithFont.css&#39;);

     

$ mpdf-&GT;的WriteHTML($样式表中,1);

现在,您可以将您的字体与html一起使用。在css文件中定义文本的font-family或使用html内联。使用 $ mpdf-&gt; WriteHTML(我的文字); 打印html。

答案 1 :(得分:0)

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

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

注意:这适用于mPDF v6及更低版本