我必须从 PHP 脚本创建一个 PNG / JPEG 图像.. 简要说明
该代码将创建一个 html 表并在该页面中包含一个图像。我需要将整个页面保存为图像,将该图像保存在我的服务器中并返回图像的路径(使用 webservice)。
我可以很好地从 imagejpg 函数创建图像。我的问题是如何将该 HTML 转换为图像,由于进程通过 Web 服务进行,因此无法截屏。
请帮助我使用 php 将 HTML 转换为图像
提前致谢
我必须从 PHP 脚本创建一个 PNG / JPEG 图像.. 简要说明
该代码将创建一个 html 表并在该页面中包含一个图像。我需要将整个页面保存为图像,将该图像保存在我的服务器中并返回图像的路径(使用 webservice)。
我可以很好地从 imagejpg 函数创建图像。我的问题是如何将该 HTML 转换为图像,由于进程通过 Web 服务进行,因此无法截屏。
请帮助我使用 php 将 HTML 转换为图像
提前致谢
您可以从此链接下载 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 将无法工作,您将无法进行转换。
您可以使用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);