У меня много кода для создания pdf (TCPDF) отдельно по заголовку, телу, нижнему колонтитулу ...
и мне нужно вызвать код по мере необходимости с переменными координатами. Поскольку мне нужно использовать if else
, вызовов (конечно) несколько, и я без нужды переписываю один и тот же код.
Например, я пробую это (подзаголовок):
class invoice {
function getSubheader($disY){
$subheader = array(
$pdf->SetLineWidth(.2),
$pdf->MultiCell(190,9,'',1,'L',false,0,10,$disY,true),
$pdf->SetFont('freesans','',7),
$pdf->MultiCell(50,"",$getDesc['blabla1'],0,'L',false,0,12,$disY+2,true),
$pdf->MultiCell(15,"",$getDesc['blabla2'],0,'R',false,0,62,$disY+2,true),
$pdf->MultiCell(20,"",$getDesc['blabla3'],0,'R',false,0,77,$disY+2,true),
$pdf->MultiCell(15,"",$getDesc['blabla4'],0,'R',false,0,97,$disY+2,true),
$pdf->MultiCell(25,"",$getDesc['blabla5'],0,'R',false,0,112,$disY+2,true),
$pdf->MultiCell(15,"",$getDesc['blabla6'],0,'R',false,0,137,$disY+2,true),
$pdf->MultiCell(20,"",$getDesc['blabla7'],0,'R',false,0,152,$disY+2,true),
$pdf->MultiCell(25,"",$getDesc['blabla8'],0,'R',false,0,172,$disY+2,true),
$pdf->SetFont('freesans','B',8),
$pdf->MultiCell(180,"",$getDesc['blabla9'],0,'L',false,0,12,$disY+11,true)
);
return $subheader;
}
others functions...
}
В другом class
вызовите только function
$pdf = new TCPDF (PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->AddPage();
lot of code $pdf->...
$invoice = new invoice();
if (cond == 1){
$disY = 100;
$invoice->getSubheader($disY);
} else {
$disY = 200;
$invoice->getSubheader($disY);
}
lot of code $pdf->...
Этот function
должен возвращать переменные $ pdf-> SetLineWidt ... и т. д.
Но если я воспользуюсь этим решением - ошибка
Call to a member function SetLineWidth() on null
Есть совет новичку?
О, я вижу. Я совершенно тупой. function getSubheader ($ pdf, $ getDesc, $ disY) {... спасибо
Привет, Любос! Объект $ pdf не существует в вашем втором классе. Это вызывает вашу ошибку.