MPDF -来自url的图像无法在生成的pdf中加载


mpdf - images from a url won't load in generated pdf

我正在尝试从http url加载图像,但它们不会显示在我生成的pdf中。

$this->layout = '//layouts/pdftemplate';
$pdf = Yii::app()->toPDF->mpdf();
$pdf->shrink_tables_to_fit = 1;
$pdf->defaultfooterline = false;
$stylesheet = file_get_contents(Yii::app()->basePath.'/../webroot/admin/themes/admin/css/formbuilder-print.css');
$pdf->WriteHTML($stylesheet, 1);
$pdf->WriteHTML($_POST['html_string']);
$pdf->Output(sys_get_temp_dir()."/test.pdf", 'F');

我在ajax调用中传递html给php函数。图片在Amazon CloudFront上。

感谢Asped和Latheesan kane,我解决了这个问题。我还使用PHP的DOMDocument类将图像url替换为图像的本地副本。这是供将来参考,如果有人也遇到类似的问题

$doc = new DOMDocument();
@$doc->loadHTML($_POST['html_string']);
$imgs = $doc->getElementsByTagname('img');
foreach ($imgs as $img){
  $src = $img->getAttribute('src');
  $name = explode('?', basename($src));
  $name = $name[0];
  $tmp = sys_get_temp_dir().'/'.$name;
  copy($src, $tmp);
  $img->setAttribute('src', $tmp);
}
$html = $doc->saveHTML(); // you can write this to the pdf. $pdf->WriteHTML($html);

在pdf中显示SVG文件时,我遇到了类似的问题。这是行不通的。然后我将其转换为PNG(动态),存储在本地的临时文件夹中,并将临时文件传递给mpf,这很有帮助。

UPDATE -实际上现在我记得我甚至不需要转换它,我只需要将它存储在本地的临时文件夹中。