Yii2 mPDF мой нижний колонтитул отображается только на последней страницеPhp

Кемеровские программисты php общаются здесь
Anonymous
Yii2 mPDF мой нижний колонтитул отображается только на последней странице

Сообщение Anonymous »


I want to set a footer on my PDF page using mPDF library but my footer only shows on the last page. Example image as you can see the previous page doesn't show footer but the second (last page) does.

I've tried putting footer before content like this

$this->SetFooter($footer); $stylesheet = file_get_contents(Yii::getAlias('@frontend') . '/web/css/bootstrap3.7.min.css'); $stylesheet .= $css; $this->WriteHTML($stylesheet, 1); $this->WriteHTML($content, 2); or this

$this->SetFooter($footer); $this->WriteHTML($stylesheet, 1); $this->WriteHTML($content, 2); but none of them works. here is my component.

public function genPdf($content, $css = '', $footer = [], $additionals = [], $watermark = "") { $stylesheet = file_get_contents(Yii::getAlias('@frontend') . '/web/css/bootstrap3.7.min.css'); $stylesheet .= $css; $this->WriteHTML($stylesheet, 1); $this->WriteHTML($content, 2); if ($footer) { $this->SetFooter($footer); } if ($watermark) { $this->WriteHTML(''); } if (count($additionals)) { $basePath = Yii::getAlias('@webroot'); $index = 0; foreach ($additionals as $doc) { // $this->SetImportUse(); if ($doc['kind'] === 'pdf') { continue; $fileName = $basePath . '/tmp/file' . $index . '.pdf'; file_put_contents($fileName, fopen($doc['uri'], 'r')); if (file_exists($fileName)) { $pagecount = $this->setSourceFile($fileName); if ($pagecount) { $tplId = $this->importPage($pagecount); $this->AddPage(); $this->useTemplate($tplId); $this->useTemplate($tplId, 50, 50, 100, 100); $this->WriteHTML(''); } } } else if ($doc['kind'] === 'jpg') { $fileName = $basePath . '/tmp/file' . $index . '.jpg'; file_put_contents($fileName, fopen($doc['uri'], 'r')); if (file_exists($fileName)) { $this->AddPage(); $this->Image($fileName, 0, 0, 210, 297, 'jpg', '', true, false); $this->WriteHTML(''); } } $index++; } } if (!empty($this->filename)) { $this->Output($this->filename, 'I'); } else { $this->Output(); } } and this is my controller
private function footer() { $dtime = \DateTime::createFromFormat("Y-m-d", date('Y-m-d')); $timestamp = $dtime->getTimestamp(); $footer = array( 'odd' => array( 'L' => array( 'content' => 'create by: ABC'. ' (' . Yii::$app->date->date($timestamp) . ')', 'font-size' => 10, 'font-family' => 'garuda', ), 'R' => array( 'content' => "{PAGENO}/{nb}", 'font-size' => 11, 'font-family' => 'garuda', ), 'line' => 1, ), 'even' => array( 'L' => array( 'content' => 'create by: ABC'. ' (' . Yii::$app->date->date($timestamp) . ')', 'font-size' => 10, 'font-family' => 'garuda', ), 'R' => array( 'content' => "{PAGENO}/{nb}", 'font-size' => 11, 'font-family' => 'garuda', ), 'line' => 1, ), ); return $footer; } private function outputPDF($fileName, $content, $cssFilePath, $overrideConfig = [], $additionals = [], $watermark = "") { $mpdf = new NgMpdf('utf-8', 'A4', 12, 'thsarabunnew', $left = 18, $right = 13, $top = 8, $bottom = 8, $mgh = 5, $mgf = 2, 'P'); $mpdf->showWatermarkText = true; $mpdf->filename = $fileName . ".pdf"; $mpdf->title = $fileName; $customCssContent = $this->getBasePdfCss(); if (!empty($cssFilePath)) { $customCssContent .= file_get_contents($cssFilePath); } $mpdf->genPdf($content, $customCssContent, $this->footer(), $additionals, $watermark); }

Источник: https://stackoverflow.com/questions/780 ... -last-page

Вернуться в «Php»