Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用JsBarcode.js生成条形码,并在Yii framework 2.0中使用Kartik mPDF将其打印到PDF文件中_Javascript_Php_Yii2_Barcode_Mpdf - Fatal编程技术网

Javascript 如何使用JsBarcode.js生成条形码,并在Yii framework 2.0中使用Kartik mPDF将其打印到PDF文件中

Javascript 如何使用JsBarcode.js生成条形码,并在Yii framework 2.0中使用Kartik mPDF将其打印到PDF文件中,javascript,php,yii2,barcode,mpdf,Javascript,Php,Yii2,Barcode,Mpdf,我已在Yii framework 2.0中安装了Kartik mPDF扩展。下面是控制器中生成PDF文件并将其发送到浏览器的代码段 // setup kartik\mpdf\Pdf component $pdf = new Pdf([ 'mode' => Pdf::MODE_CORE, 'format' => Pdf::FORMAT_A4, 'orientation' => Pdf::ORIENT_PORTRAIT,

我已在
Yii framework 2.0
中安装了
Kartik mPDF
扩展。下面是控制器中生成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
)可以在这里找到 要生成条形码,我需要包含这些JS文件和自定义JavaScript代码。在我看来,我通常包括以下文件(my
print barcode.php



所有包含的JavaScript代码都没有任何效果,因为它是PDF文件而不是网页。如何打印由
JsBarcode.js
CODE128.js
生成的条形码,并将其传递到由
kartik\mpdf\PDF生成的PDF文件中

很抱歉这么晚了,但这对我有用。您应该首先使用这些信息创建一个视图,然后使用renderPartial并将其发送给mpdf

我的观点包括:

<script src="<?=yii::$app->params['rootUrl']?>/js/JsBarcode.code128.min.js"></script>

<p>Safety is Everyone's Responsibility</p>
<p><barcode code="<?=$model->qrcode?>" type="C128A" class="barcode" size="0.8" /></p>
最后打印pdf(我打印徽章,所以我在玩边距):


我对javascript没有太多经验。但我认为它在加载页面时运行。这是在加载.php之后。您可以通过Ajax请求将生成的条形码值传递到
.php
,然后通过这种方式检索
.pdf
文件。条形码由Javascript插件生成,Javascript插件包含在视图中。如何在加载视图之前生成条形码。这意味着在加载视图之前,我还没有在视图上传递条形码。只有在呈现视图之前找到如何在控制器中包含Javascript代码的方法。这就是我的意思,Javascript在php之后加载。您将需要一个替代插件,它要么是基于PHP的。或者使用Ajax调用将条形码传递给php文件,php文件生成pdf文件并检索呈现的pdf。这是不可能的(并且已经被询问过),因为mPdf不支持js(或者只支持基本js)。。。您应该使用能够将图表导出为图像的图表库(例如highcharts)。如果您想生成条形码,我建议您使用:
<script src="<?=yii::$app->params['rootUrl']?>/js/JsBarcode.code128.min.js"></script>

<p>Safety is Everyone's Responsibility</p>
<p><barcode code="<?=$model->qrcode?>" type="C128A" class="barcode" size="0.8" /></p>
return $this->renderPartial('_print-view',['model'=>$myModel]);
$mpdf = new \Mpdf\Mpdf([  
//'mode' => 'c'
'margin_left' => 0,
'margin_right' => 0,
'margin_top' => 0,
'margin_bottom' => 0,
'format' => [54,86],
]);

$mpdf->SetTitle('Badge: '.$myModel->badge_number);
$mpdf->WriteHTML($this->renderPartial('_print-view',['model'=>$myModel,'page'=>1]));

$mpdf->AddPage('L');
$mpdf->WriteHTML($this->renderPartial('_print-view',['model'=>$myModel,'page'=>2]));

$mpdf->Output($badge_number,'I');