我正在制作PDF发票。
只有在类中设置Constructor
时才会找到字体。
这是我的班级:
<?php require('fpdf.php');
class Invoice extends FPDF
{
/**
* Database
*
* @access private
*/
private $db;
/**
* Constructor
*
* @access public
*/
public function __construct() {
$this->db = new Database();
}
//The rest of the code
}
?>
同样parent::FPDF();
在构造函数中也不起作用。
致命错误:调用未定义的方法FPDF :: FPDF()。
有人能帮助我吗?感谢。
答案 0 :(得分:4)
如果从FPDF扩展并且如果要覆盖构造函数,则必须调用具有预期签名的父构造函数。
您可以定义&#39; FPDF_FONTPATH&#39;在bootstrap php中保持不变。
FPDF具有以下构造函数签名
function __construct($orientation='P', $unit='mm', $size='A4')
{
//line 106 to 117 has following font path initialization
// Font path
if(defined('FPDF_FONTPATH'))
{
$this->fontpath = FPDF_FONTPATH;
if(substr($this->fontpath,-1)!='/' && substr($this->fontpath,-1)!='\\')
$this->fontpath .= '/';
}
elseif(is_dir(dirname(__FILE__).'/font'))
$this->fontpath = dirname(__FILE__).'/font/';
else
$this->fontpath = '';
// Core fonts
...
}
尝试以下内容
define('FPDF_FONTPATH','change/to/fpdf/font/path');
class Invoice extends FPDF
{
private $db;
public function __construct()
{
parent::__construct('P', 'mm', 'A4');
$this->db = new Database();
}
}