使用动态生成的php图片与MPDF

3
我正在使用php和mpdf生成一个特定的pdf文件。在pdf文件中,我有一些饼图。为此,我使用pChart。我会动态地生成这些饼图以在pdf中呈现。
在我的pdf文件中,所有静态图像都被正确呈现,但没有呈现动态生成的饼图。
以下是一个成功呈现的静态饼图:
<div class="chart">
<?php echo CHtml::image(Yii::app()->baseUrl.'/images/color-block2.png', 'Logo screenshot', array('class' => 'logo_image')); ?>
</div>

但不是这种(动态的)

<div class="chart">
<?php echo CHtml::image(Yii::app()->baseUrl.'/images/pie.png', 'Logo screenshot', array('class' => 'logo_image')); ?>
</div>

Ps:我正在使用Yii url规则来创建一个干净的饼图url。

当我将pdf_template渲染为html时,两个图像都可以正确显示。

如何在没有$mpdf->Image()方法的情况下使用mpdf实现动态图像。

我怀疑我无法在从html生成pdf时使用$mpdf->Image()

更新:

之后

$mPDF->showImageErrors = true;

我正在获取。
mPDF error: IMAGE Error (http://csrt.dev/images/pie.png): Could not find image file

在此处查看示例http://mpdf.bpm1.com/index.php?page=Examples - Oki Erie Rinaldi
请阅读我的问题。 - Quicksilver
当您尝试从浏览器打开http://csrt.dev/images/pie.png时会发生什么? - eXtreme
2个回答

8

将图片进行Base64编码,并嵌入到<img>标签中。

<div class="chart">
<img src="data:image/png;base64,xx5t.." />
</div>

我在使用Yii时也遇到了同样的问题,后来找到了解决方法。但是对于其他的Yii/PHP用户,你需要使用base64_encode(你的文件内容)来获取在<img>标签中的base64编码部分。 例如: base64_encode(file_get_contents("../images/folder16.gif"));


这是一个有效的解决方法。不幸的是,它并没有解决原始问题。我也遇到了同样的问题 - 看起来是某种mPDF的错误。 :-( - John Rix

0

我遇到了类似的问题。

使用:

 <img src="http://domain.com/assets/img/header.png">

或者

 <img src="/assets/img/header.png">

给我以下错误:

mPDF error: IMAGE Error (http://domain.com/assets/img/header.png): Could not find image file

尽管我可以浏览并正常查看该图像。

但是使用以下方法:

 <img src="assets/img/header.png">

看起来运行得很好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接