使用字体在mPDF生成的文件


use font in mPDF generated document

我希望你能帮助我解决这个问题,我第一次处理mPDF,我认为这很好,但我想用与我的网页相同类型的字体显示报告,在其文档上解释了如何实现这一目标,但它似乎仍然不适合我。到目前为止我所做的是:

  1. 将url从google添加到我的文档中,这将是<link href='http://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'> .
  2. 然后我添加一个样式表文件,其中包含使用的字体<link rel="stylesheet" href="<?php echo base_url(); ?>assets/publicidad/css/reporte.css" type="text/css">在我已经添加的report .css中,我有一个使用"Open Sans"字体的定义

    身体{font-family: 'Open Sans';}

  3. 我用mPDF生成pdf,效果很好,但是当我想
    显示Open Sans作为文档的立场,它没有显示所需的字体,我从http://www.fontsquirrel.com/fonts/open-sans下载了"Open Sans"的ttfs文件,并添加在mPDF目录的ttfonts文件夹中,正如它在其文档中所说的。


在它之后,我遵循这个明确的文档http://mpdf1.com/manual/index.php?tid=453,但直到现在我还没有得到所需的字体显示在我的PDF文档,我没有做,直到现在它的部分说"4。要使用特定语言的字体,还需要编辑配置文件(config_cp.php);让我们假设Frutiger包含泰语所需的全套字符:",但我不认为这是问题所在,因为我使用的是我设置的默认配置。

function pdf_create($html, $filename, $stream = TRUE) {
            require_once(APPPATH . 'helpers/mpdf/mpdf.php');
            $mpdf = new mPDF();
            $mpdf->SetAutoFont();
            $mpdf->WriteHTML($html);
            if ($stream)
            {
                $mpdf->Output($filename . '.pdf', 'D');
            }
            else
            {
                $mpdf->Output('./uploads/temp/' . $filename . '.pdf', 'F');
                return './uploads/temp/' . $filename . '.pdf';
            }
        }

在我的控制器中我这样做

$html = $this->load->view('publicidad/reporte_x_curso', $data, true);
$this->load->helper('mpdf');
pdf_create($html, 'Reporte_por_cursos', true);

(以上内容没有被stackverflow编辑器识别)

到目前为止,我所做的就是在文档后面写的是:

$this->fontdata = array(
    "'Open Sans'" => array(
    'R' => 'OpenSans-Regular.ttf'
    )

PD:我加单引号是因为我想在我的html文档中添加单引号,但我也尝试过不加单引号,但没有成功。我希望你能帮助我,提前感谢。

备注

首先,不要使用mpdf1.com网站,它已经关闭了。使用 https://github.com/mpdf/mpdf 版本6和7有不同的代码

mPDF v6.x示例

(源)<<p> 1)上传strong> MyFont.ttf /mpdf/ttfonts 在<<br/> 2) strong> /mpdf/config_fonts.php ,在 $this->fontdata 数组,添加:

"my_custom_font" => array( 
        'R' => 'MyFont.ttf',            // Regular - REQUIRED
        'I' => "MyFont-Oblique.ttf",    // Italic  - OPTIONAL
        'B' => "MyFont-Bold.ttf",       // Bold    - OPTIONAL
),


3)然后,无论你在哪里执行你的自定义脚本,使用my_custom_fonttt在css:

<?php
$mpdf=new mPDF();
$texttt= '
    <html><head><style>
    body { font-family: "my_custom_font"; }
    </style></head>
    <body>My SAMPLE TEXTTTTT</body>
    </html>';
$mpdf->WriteHTML("$texttt");
$mpdf->Output(dirname(__FILE__).'/new_created_file.pdf','F');

我已经解决了我的问题,在字体的定义中应该没有空格,所以我在css font-face声明中替换了"opensans"和

$this->fontdata = array(
    "opensans" => array(
    'R' => 'OpenSans-Regular.ttf'
    )

注意字体类型('OpenSans-Regular.ttf')应该在mpdf文件夹

的ttfonts文件夹中

我也面临同样的问题:请确保在定义字体名称时没有空格,请保持小写。

aaarh -字体php文件之间的FPDF版本改变。