2011-08-03 67 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可用於此