Дано:
HTML код таблицы.
Задача:
Получить эту таблицу в виде картинки.
Задача подробнее:
Эту таблицу (распарсенный HTML код с сайта) надо отобразить в виде сообщения telegram-бота. Телеграм не поддерживает большую часть HTML тэгов, включая таблицы. Решил вот так проблему решить: получаем код таблицы, преобразуем в картинку, отсылаем картинку таблицы.
Что сам сделал:
Почитал en-SO и решил пойти по пути HTML-PDF-IMAGE
Нашёл php-либу, получающую на входе HTML код таблицы и выдающей *.pdf документ с ней. Даже стили можно использовать (sic!).
Остался последний шаг - преобразовать pdf в картинку.
Проблема:
По запросу типа
pdf to image php
выдаются только советы использовать некие ImageMagick и GhostScript. Но, насколько я понял, они не подойдут мне, т.к. у меня не выделенный сервер, а просто хостинг с php, а эти модули надо в систему прямо ставить.
Вопрос:
Так таки есть ли способ получить силами непроапгрейженного всякими прогами php изображение из pdf или я вообще не по тому пути иду?
P.S.
Возможно стоит вообще другую либу попробовать?..
Ответ
Возможно стоит сложить код таблицы в открытый доступ с секретной ссылкой, получить эту ссылку, натравить на неё сервис типа screenshotlayer.com, удалить таблицу и радоваться?
screenshotlayer.com удобный (API и плюшки), но платный.
Сервисы типа pdfconvertonline.com/webpage-to-png-online.html, web-capture.net бесплатны, но нужно проделать чуть больше движений чтобы получить картинку: сформировать запрос, распарсить ответ и скачать картинку.
Для примера (pdfconvertonline.com/):
POST http://s2.pdfconvertonline.com/convert/convert-webpage-win.php
Тело: websiteurl=google.com&filetype=PNG&source=WEENYSOFT&convert=Convert+Now%21
Вернётся 302 на что-то типа http://www.pdfconvertonline.com/results.php?name=00i27-mv4a4.png&ser=2
В коде будет ссылка на картинку:
00i27-mv4a4.png
Вот рабочий код от ТС, делающий запрос на вышепомянутый сайт с нужными заголовками и выводящий результирующий HTML код страницы, коя содержит ссылку на требуемый PNG. Останется только распарсить ответ для получения ссылки на изображение и скачать его к себе на сервер.
'http://s2.pdfconvertonline.com/convert/convert-webpage-win.php',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_POSTFIELDS => http_build_query(array(websiteurl=>'LINK_TO_HTML_PAGE_WITH_TABLE_IN_IT.html', filetype=>PNG, source=>WEENYSOFT, convert=>Convert+Now%21 ))
));
$response = curl_exec($myCurl);
curl_close($myCurl);
echo $response;
И опять код от автора ответа:
Для парсинга ответа, используем Simple HTML Dom
require_once 'simple_html_dom.php';
// Код страницы ответа в $response
$dom = str_get_html($response);
$link = $dom->find('#item_1 a', 0); // Это ссылка на картинку
printf("Your image: %s", $link->href, $link->innertext);
// $image = file_get_contents($link->href);
Комментариев нет:
Отправить комментарий