HTML не правильно разбирается при создании образа в php

69
6

Мне нужно создать журнал, получив несколько записей с точным контуром изображений. Сортируйте все записи в строке и теперь хотите создать файл JPG или PNG с выходом этой строки.


Я использовал этот код.


        //set size of image
$pic = @imagecreatetruecolor(2835, 3898);

//setting text color
$text_color = imagecolorallocate($pic, 0, 0, 0); //black color

//setting bg color
$bgColor = imagecolorallocate($pic, 255,255,255); //white color
imagefill($pic , 0,0 , $bgColor);

//setting text with text color
imagestring($pic, 1, 5, 5, $output, $text_color);

//generating JPG
Imagepng($pic,$path."01.jpg");

//clearing image cache
ImageDestroy($pic);


Здесь $output - это имя строки.


Он отображает html-код выходных значений, в то время как включенные изображения и фоны divs не отображаются.


Может ли кто-нибудь помочь мне в этом отношении.


заблаговременно

спросил(а) 2011-04-28T09:24:00+04:00 9 лет, 5 месяцев назад
1
Решение
57

Я думаю, вам нужно установить заголовок, если вы хотите отобразить изображение или сделать его загружаемым.


set


header("Pragma: public"); // required 
header("Content-Type: image/png");
header("Content-Disposition: attachment; filename=\"image.jpg;" );
header("Content-Transfer-Encoding: binary");

перед отображением изображения


от php.net

ответил(а) 2011-04-28T09:46:00+04:00 9 лет, 5 месяцев назад
41

imagestring() не анализирует HTML


см. http://ca2.php.net/manual/en/function.imagestring.php

Самое близкое, что я могу себе представить, - это использовать библиотеку HTML2PDF для создания PDF файла, а затем использовать инструмент PDF2TIFF для его растеризации, а затем преобразовать TIFF в любой формат изображения, который вы хотите на самом деле выводить.


Или, может быть, вы можете использовать phpGTK/GTKWebKit, чтобы напрямую растрировать его. В основном вы бы написали небольшой браузер в PHP.

ответил(а) 2011-04-28T09:28:00+04:00 9 лет, 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема