imagick:绘制html输出

时间:2018-08-12 23:09:52

标签: php imagick

我想将html元素放置在png上,用Imagick创建。

到目前为止,我的代码:

$out = "<table><tr><td>There will be data</td></tr></table>";

$draw = new \ImagickDraw();

$draw->setStrokeOpacity(1);
$draw->setStrokeColor("rgb(255,255,255)");
$draw->setFillColor('rgb(200, 200, 200)');
$draw->setStrokeWidth(2);
$draw->setFont("/var/www/myapp/public/fonts/calibri.ttf");

foreach ($sizes as $size) {
    $draw->setFontSize($size);
    $draw->annotation(50, (24 * 24 / 16), $out);
}

$imagick = new \Imagick();
$imagick->newImage(500, 500, 'rgb(0, 0, 0)');
$imagick->setImageFormat("png");
$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();

但是它将$out呈现为字符串而不是表格。 如何将其呈现为表格?

2 个答案:

答案 0 :(得分:0)

我认为您不能,您必须检查该函数的源代码,但它似乎只使用字符串作为参数。

http://php.net/manual/en/imagickdraw.annotation.php https://github.com/mkoppanen/imagick/blob/master/imagickdraw_class.c

答案 1 :(得分:0)

Imagick不是HTML渲染器。

如果您想要页面的屏幕截图,我强烈建议您以无头模式使用Chrome浏览器以类似以下方式进行屏幕截图:

AddDate()