我正在使用Kartik mpdf库来生成pdf。我正在pdf的正文中生成条形码,其中包含通过循环生成的mcqs问题,因此页面是根据问题随机插入的,因此我需要在每个页面上的条形码中设置页码。
Kartik mpdf提供了一种方法'SetFooter' => ['{PAGENO}|']
该方法在页脚中给出页码,但此{'PAGENO'}
在我的 html 文档中不起作用......如何获取文档中的页码。
PAGENO 与 kartik 无关,来自 mpdf。当你说在你的html中不起作用时,那是因为占位符变量将被mpdf解析,所以如果你不生成pdf,它就不会生效。
另一方面,您无法在 html 中显示页码。html文档上没有页码,因为它取决于页面大小和浏览器的字体大小,因此无法在服务器端知道"您在哪里"。
我希望你使用的是renderPartial 方法。请在下面找到我的代码。
$pdf = new Pdf([
'mode' => Pdf::MODE_UTF8, // leaner size using standard fonts
'destination' => Pdf::DEST_BROWSER,
'orientation' => Pdf::ORIENT_PORTRAIT,
'content' => $this->renderPartial('print', [
'model' => $model,
'quotations' => $modelQtn,
'pageNo' => ['{PAGENO} of {nb}'],
]),
'filename' => $model->po_no,
'cssFile' => [
'@vendor/../backend/assets/css/custom-style.css',
'@vendor/kartik-v/yii2-mpdf/src/assets/kv-mpdf-bootstrap.min.css',
],
// any css to be embedded if required
'cssInline' => '
.kv-heading-1 {
font-size:26px
}
.text-center {
font-family : Arial !important;
font-size:
}',
'options' => [
// any mpdf options you wish to set
'title' => 'Purchase Order'
],
'methods' => [
'SetTitle' => $model->po_no,
'SetSubject' => 'Mohammed Iqbal Khan',
'SetHeader' => [ 'Generated On: ' . date("F j, Y, g:i a")],
'SetFooter' => ['|Page {PAGENO} of {nb}|'],
'SetAuthor' => 'Mohammed Iqbal Khan',
'SetCreator' => 'Mohammed Iqbal Khan',
'SetKeywords' => 'Mohammed Iqbal Khan',
'SetWatermarkText' => 'DRAFT',
'SetWatermarkImage' => '',
]
]);
return $pdf->render();
传递页面 no 方法后,您可以使用以下代码在生成时在文档中显示页面 no。
<?= $pageNo[0];?>