Вы написали:
У меня есть класс, который создает документ FPDF. И я хотел бы включить этот документ в другой класс FPDF.
Это не правильно! После $pdf->Output()
вы не можете больше ничего выводить, потому что $pdf->Output()
создает PDF-документ. Вы должны использовать его только один раз для каждого PDF-документа. Прочтите документацию.
У вас тоже не может быть второго экземпляра из FPDF. Из-за этого вы должны иметь в первом классе конструктор с экземпляром из FPDF в качестве параметра.
Пример решения:
Из-за всего этого мы не можем импортировать страницу из другого класса FPDF с помощью FPDF, но мы можем сделать следующее.
Код от firstpdf_class.php
:
<?php
class FirstPDF_Class
{
private $fpdf_instance;
function __construct($fpdf_instance)
{
$this->fpdf_instance = $fpdf_instance;
}
function print_title($doc_title, $company)
{
$this->fpdf_instance->SetFont('Helvetica','B', 18);
$this->fpdf_instance->Cell(210,4, $company, 0, 0, 'C');
$this->fpdf_instance->Ln();
$this->fpdf_instance->Ln();
$this->fpdf_instance->Cell(37);
$this->fpdf_instance->SetFillColor(209, 204, 244);
$this->fpdf_instance->SetFont('Helvetica', 'B', 11);
$this->fpdf_instance->Cell(150,8, $doc_title, 0, 0, 'C', 1);
}
}
?>
Код от secondpdf_class.php
:
<?php
require('fpdf.php');
require('firstpdf_class.php');
class SecondPDF_Class extends FPDF
{
private $printpdf;
function __construct($orientation = 'P', $unit = 'mm', $size = 'A4')
{
parent::__construct($orientation, $unit, $size);
$this->printpdf = new FirstPDF_Class($this);
$this->import_page('Document 1', 'Company "Fruits Sell"');
$this->import_page('Document 2', 'Company "Boot Sell"');
}
public function import_page($doc_title, $company)
{
$this->AddPage();
$this->printpdf->print_title($doc_title, $company);
}
function Footer()
{
$this->SetXY(100, -15);
$this->SetFont('Helvetica','I', 10);
$this->SetTextColor(128, 128,128);
// Page number
$this->Cell(0, 10,'This is the footer. Page '.$this->PageNo(),0,0,'C');
}
}
$pdf = new SecondPDF_Class();
//not really import page, but some like this
$pdf->import_page('Document 3', 'Company "Auto Sell"');
$pdf->AddPage();
$pdf->SetFont('Helvetica','B', 18);
$pdf->Cell(210,4, 'Page 3.', 0, 0, 'C');
$pdf->Output();
?>
person
Bharata
schedule
28.07.2018
class MySecondDocument extends MyFirstDocument
. Затем вызовите все нужные функции сразу, а затем вызовите вывод. - person Hello World   schedule 28.07.2018$this->addPage()
условно, а затем создать документ. - person Hello World   schedule 28.07.2018