6

我必须从 PHP 脚本创建一个 PNG / JPEG 图像.. 简要说明

该代码将创建一个 html 表并在该页面中包含一个图像。我需要将整个页面保存为图像,将该图像保存在我的服务器中并返回图像的路径(使用 webservice)。

我可以很好地从 imagejpg 函数创建图像。我的问题是如何将该 HTML 转换为图像,由于进程通过 Web 服务进行,因此无法截屏。

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

提前致谢

4

2 回答 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 将无法工作,您将无法进行转换。

于 2012-03-29T03:37:56.547 回答
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);
于 2017-05-11T19:29:37.940 回答