我想使用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
那是为什么,我该如何解决?
答案 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行