Страницы

Поиск по вопросам

пятница, 10 января 2020 г.

Как преобразовать HTML таблицу в картинку (jpeg/png) силами php?

#php #html


Дано:

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.

Возможно стоит вообще другую либу попробовать?..
    


Ответы

Ответ 1



Возможно стоит сложить код таблицы в открытый доступ с секретной ссылкой, получить эту ссылку, натравить на неё сервис типа 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);

Комментариев нет:

Отправить комментарий