2011-08-03 35 views
2

我想创建一个图像从html,我不能使用painty,因为它已经过时,不再工作,我想要类似的东西。 我已经尝试使用GD库这样从html创建图像

<?php 
$html_code = "<b> this is the body </b> "; 
// Create the image 
$img = imagecreate("300", "600"); 
imagecolorallocate($img,0,0,0); 
$c = imagecolorallocate($img,70,70,70); 
imageline($img,0,0,300,600,$c2); 
imageline($img,300,0,0,600,$c2); 

$white = imagecolorallocate($img, 255, 255, 255); 
imagettftext($img, 9, 0, 1, 1, $white, "arial.ttf", $html_code); 

// Display the image 
header("Content-type: image/jpeg"); 
imagejpeg($img); 

创建图像,但它不“编译” html标签和打印他们的图像文本英寸

问候

+0

您的意思是它打印'这是身体'?这很正常。这是Web浏览器呈现html标记的工作。在PHP文档的imagettftext页面上有一些提示。 http://php.net/manual/fr/function.imagettftext.php – Aif

+0

'imagettftext'不会将HTML作为输入,而是纯文本 - 所以你不能这样做。 – Andris

回答

3

GD库没有ablilty渲染HTML代码和绘制的图像上。如果要绘制粗体文本,则需要使用粗体字体,例如arialbd.ttf

+0

我不仅想绘制粗体字体,我想绘制图像内的图像,br标记为新线条,斜体等等,如何在绘制图像之前渲染它们? – SAFAD

+0

恐怕这是不可能的。这里描述了你可以用GD库做的所有事情(http://php.net/manual/en/book.image.php)。你应该用GD提供的功能画出所有东西 – heximal

0

简而言之,您无法在没有浏览器的情况下呈现HTML。

更长的答案是,您可以在浏览器中呈现HTML,但无法轻松自动捕获屏幕截图(有activeX widgets来做到这一点 - 但activeX是一个坏主意)。更好的方法是使用可以呈现合适格式的HTML客户端 - 例如xhtml2pdf,也有online services可用于此