使用Composer自动加载tFPDF类

时间:2018-07-17 19:24:11

标签: php laravel composer-php fpdf

我想使用tFPDF类,并使用composer-autoload加载它。由于找不到正式的tFPDF作曲者存储库,因此我仅下载了zip文件并将其提取到文件夹vendor/tfpdf中。

接下来,我将psr-4添加到composer.json文件中:

 "autoload": {
        "psr-4": {
            "App\\": "app/",
            "tFPDF\\": "vendor/tFPDF"
        },

我还在tfpdf.php命名空间中添加了

<?php
namespace tFPDF;

define('tFPDF_VERSION','1.25');

class tFPDF
{

最后,我产生了一个新的自动加载文件:

  

composer dump-autoload

当我现在尝试创建这样的PDF时:

$pdf = new \tFPDF\tfpdf();
$pdf->AddPage();

// Add a Unicode font (uses UTF-8)
$pdf->AddFont('DejaVu','','DejaVuSansCondensed.ttf',true);

然后最后一行将出现错误:

  

无法访问私有财产tFPDF \ TTFontFile :: $ charWidths

enter image description here

那是为什么,我该如何解决?

1 个答案:

答案 0 :(得分:0)

我必须将以下行添加到ttfonts.php

namespace tFPDF\font\unifont;

tfpdf.php中,我必须添加

namespace tFPDF;

use tFPDF\font\unifont\TTFontFile;

并删除

require_once($this->_getfontpath().'unifont/ttfonts.php');

第507和1851行