рассмотрим такой простой вариант, как описано в примере TOC;Я буду использовать это как встроенную конкатенацию строк PHP в моем методе контроллера, который выглядит следующим образом:
Код: Выделить всё
public function generateTableOfContents() {
$options = new Dompdf\Options();
$options->set('isHtml5ParserEnabled', true);
$options->set('isRemoteEnabled', true);
$pdf = new Dompdf\Dompdf($options);
$htmlContent='
';
$font = $pdf->getFontMetrics()->getFont('times', 'normal');
//$font = Font_Metrics::get_font("helvetica", "bold");
$GLOBALS['chapters'] = array();
$GLOBALS['backside'] = $pdf->open_object();
'
Table of Contents
[list]
[*]Chapter 1 ....................... page %%CH1%%
[*]Chapter 2 ....................... page %%CH2%%
[*]Chapter 3 ....................... page %%CH3%%
[/list]
';
$pdf->close_object();
'
Chapter 1
';
$GLOBALS['chapters']['1'] = $pdf->get_page_number();
'
p1
p2
p3
Chapter 2
';
$GLOBALS['chapters']['2'] = $pdf->get_page_number();
'
p4
p5
p6
Chapter 3
';
$GLOBALS['chapters']['3'] = $pdf->get_page_number();
'
p7
p8
p9
';
foreach ($GLOBALS['chapters'] as $chapter => $page) {
$pdf->get_cpdf()->objects[$GLOBALS['backside']]['c'] = str_replace( '%%CH'.$chapter.'%%' , $page , $pdf->get_cpdf()->objects[$GLOBALS['backside']]['c'] );
}
$pdf->page_script('
if ($PAGE_NUM==1 ) {
$pdf->add_object($GLOBALS["backside"],"add");
$pdf->stop_object($GLOBALS["backside"]);
}
');
'
';
$pdf->loadHtml($htmlContent);
$pdf->setPaper('A4', 'landscape');
$pdf->render();
$pdf->stream('document.pdf', ['Attachment' => false]);
}
как мне следует упомянуть cpdf, чтобы иметь возможность вызывать внутренний метод.
как следует разрешить?
заранее спасибо.>
Подробнее здесь: https://stackoverflow.com/questions/792 ... for-dompdf