Я хочу напечатать изображение QR-кода с этим источником:

{amp}lt;img class="qrCode" src="{amp}lt;?=Url::to(['site/qrcode', 'code' ={amp}gt; $model-{amp}gt;id])?{amp}gt;"/{amp}gt; 

контроллер:

 public function actionQrcode($code) { return QrCode::jpg($code); } 

введите описание изображения здесь

но на странице печати изображение не показывается.

введите описание изображения здесь

JS код:

  function printDiv(el) { var restorepage = document.body.innerHTML; var printcontent = document.getElementById(el).innerHTML; document.body.innerHTML = printcontent; window.print(); document.body.innerHTML = restorepage; } 

Я думаю, что это не проблема Yii2, я думаю, что проблема в вашем JS.

Я могу угадать несколько вариантов:

  1. $('.qrCode').attr("src", '{amp}lt;?= Url::to(['site/qrcode', 'code' ={amp}gt; $model-{amp}gt;id]) ?{amp}gt;'); — Вы уверены, что ряд работает нормально? Я имею в виду, что это действительно меняет SRC вашего изображения .qrCode? И URL правильный?
  2. Если строка кода работает нормально, я думаю, что проблема в том, что изображение не загружается вовремя, прежде чем сработает window.print. Поэтому я предлагаю изменить код:
 function printDiv(el) { var qrImage = new Image(); // wait 'till image loads qrImage.onload= function() { var restorepage = document.body.innerHTML; var printcontent = document.getElementById(el).innerHTML; document.body.innerHTML = printcontent; $('.qrCode').attr("src", qrImage.src); window.print(); document.body.innerHTML = restorepage; } qrImage.src = '{amp}lt;?= Url::to(['site/qrcode', 'code' ={amp}gt; $model-{amp}gt;id]) ?{amp}gt;'; } 

Вы можете использовать приведенный ниже код для печати данных QR-кода

  $image = Yii::$app-{amp}gt;params['BASE_URL'] . 'abc.png'; $qrcode = new ZxingQrReader($image); $text = $qrcode-{amp}gt;text();