2011-08-03 17 views
2

私はhtmlからイメージを作成したいと思っています。 は、私はすでにこのイメージを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); 

ようにGDライブラリを使用してイメージを作成しようとしましたが、それはhtmlタグを「コンパイル」やテキストなどの画像でそれらを印刷していません。

よろしく

+0

これはボディー」と印刷されていますか?それは正常です。これは、HTMLマークアップをレンダリングするWebブラウザの仕事です。 php docのimagettextextページにはいくつかのヒントがあります。 http://php.net/manual/fr/function.imagettftext.php – Aif

+0

'imagettftext'は入力としてHTMLを使用しますが、プレーンテキストなので、このようにすることはできません。 – Andris

答えて

3

GD libには、HTMLコードをレンダリングした画像の上に描画するabliltyを持っていません。太字のテキストを描画する場合は太字のフォントを使用する必要があります。 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があります。

関連する問題