Я установил Kartik mPDF
расширение внутри Yii framework 2.0
, Ниже приведен фрагмент кода в моем контроллере, который генерирует PDF-файл и отправляет его в браузер.
// setup kartik\mpdf\Pdf component
$pdf = new Pdf([
'mode' => Pdf::MODE_CORE,
'format' => Pdf::FORMAT_A4,
'orientation' => Pdf::ORIENT_PORTRAIT,
'destination' => Pdf::DEST_BROWSER,
// your html content input
'content' => $this->renderPartial('print-barcode'),
'cssFile' => '@vendor/kartik-v/yii2-mpdf/assets/kv-mpdf-bootstrap.min.css',
'cssInline' => '.kv-heading-1{font-size:18px}',
'options' => ['title' => 'My PDF file'],
'methods' => [
'SetHeader'=>['My header'],
'SetFooter'=>['{PAGENO}'],
]
]);
return $pdf->render();
У меня два файла JS (JsBarcode.js
а также CODE128.js
) которые можно найти здесь https://github.com/lindell/JsBarcode
Для создания штрих-кода мне нужно включить эти файлы JS и мой пользовательский код JavaScript. На мой взгляд, я обычно включаю эти файлы следующим образом (мой print-barcode.php
).
<?php
$this->registerJsFile(Yii::$app->urlManager->baseUrl . '/js/JsBarcode.js', ['depends' => [\yii\web\JqueryAsset::className()]]);
$this->registerJsFile(Yii::$app->urlManager->baseUrl . '/js/Code128.js', ['depends' => [\yii\web\JqueryAsset::className()]]);
$jsGenerateBarcode = 'My custom Javascript code goes here ...';
$this->registerJs($jsGenerateBarcode, $this::POS_END);
?>
Весь включенный код JavaScript не оказывает никакого влияния вообще, так как это файл PDF, а не веб-страница. Как я могу распечатать штрих-код, сгенерированный JsBarcode.js
и по CODE128.js
и передать его в файл PDF, который генерируется kartik\mpdf\Pdf;
?
Задача ещё не решена.
Других решений пока нет …