在php中将HTML转换为图像

6

我需要从PHP脚本中创建一个PNG/JPEG图像……简单来说

这段代码将创建一个HTML表格,并在该页面中包含一张图片。我需要将整个页面保存为图像,将该图像保存在我的服务器上,并返回图像的路径(使用Web服务)。

我可以很好地使用imagejpg函数创建图像。我的问题是如何将HTML转换为图像,因为这些过程是通过Web服务进行的,无法进行屏幕截图。

请帮助我使用PHP将HTML转换为图像。

提前感谢您的帮助。


我刚刚创建了一个完整的HTML页面,包括地图... 我需要将整个HTML转换为图像.. 请帮忙.. 我需要分享HTML代码吗? - ramesh
2个回答

12

您可以从此链接下载wkhtmltoimage。该软件有适用于所有操作系统的版本,因此不应该存在问题。然后您可以这样使用它:

$path="wkhtmltoimg/wkhtmltoimage.exe"; //path to your executable
$url="http://google.com";
$output_path="test.png";
shell_exec("$path $url $output_path");

需要注意的一点是,如果PHP处于安全模式,shell_exec将无法工作,并且您将无法进行转换。


4

您可以使用PHP PhantomJS将HTML页面的屏幕截图保存到本地磁盘:

<?php

use JonnyW\PhantomJs\Client;

$client = Client::getInstance();

$width  = 800;
$height = 600;
$top    = 0;
$left   = 0;

$request = $client->getMessageFactory()->createCaptureRequest('http://example.com', 'GET');
$request->setOutputFile('/path/to/save/capture/file.jpg');
$request->setViewportSize($width, $height);
$request->setCaptureDimensions($width, $height, $top, $left);

$response = $client->getMessageFactory()->createResponse();

// Send the request
$client->send($request, $response);

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