Всем привет! Задача обозначена в заголовке. Надо сделать что-то на подобии скриншота страницы. Вопрос: есть ли реализация? Из всего что удалось найти он-лайн сервис http://www.websnapr.com/, да и тот не работает (хотя и платный). Может кто сталкивался и есть наработки?
Нужно как в браузере или например без javascript, css? https://github.com/anam-hossain/phantommagick render https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%BD%D0%B4%D0%B ... 0%BD%D0%B3
как в браузере Добавлено спустя 1 минуту 11 секунд: Читаю въехать не могу. Денис будь другом напиши что скачать и как подключить его.
А у тебя какая ОС? Искал как phantomjs на неё установить? Я дал ссылку на github там написано как через composer установить пакет, который облегчает работу с phantomjs.
Сижу гуглю... пока все печально...((( Куда он устанавливается? На сервер где лежит мой сайт или локальный комп?
может я не правильно задачу обрисовал? мне надо что бы мой сайт, выдавал скриншоты страниц моего же сайта. мне надо просить своего хостера "Дяденька поставьте на вашем сервере phantomjs"?
Да, всё верно, но думаю тебе предложат купить VDS рублей за 150 в месяц, там можно устанавливать всё что душе угодно в разумных рамках.
Есть способ с помощью JS, как в похожей теме советуют, на библиотеке html2canvas. Я предлагал с помощью браузера, встроенного в AIR. Есть ещё подобные способы, предполагающие использование твоего копьютера. Потом скрины можно расшаривать, передавать на сервер (может, Я.Диск подойдет или Гугл), откуда уже и смотреть в браузере.
не, это не вариант. с таким успехом можно кнопочку принтскрин нажать и не париться - это еще проще надо все на серверной стороне делать пошел гуглить дальше...((( Добавлено спустя 39 минут 25 секунд: В общем план такой (не хороший) 1) Конвертируем хтмл в пдф (это я умею) 2) Делаем конвертирование PDF в JPG на php (http://blog.bados.org.ua/convert-pdf-to-jpg-on-php.html) Все это на серверной стороне, юзер увидит только готовую ратинку Ничего умнее не придумал((( Пошел курить ImageMagick У кого будут мысли - пишите
У меня есть самописное готовое решение для VPS с линуксом, на основе браузера хром. Грузит с флешем. Могу установить за $50.
есть такая сайт - https://onlinezakladki.ru/ вот ты добавляешь ссылку а тебе делается на нее скриншот, я так понимаю автару нужно что то подобное, в смысле делать такой же скриншот. Я когда то хотел сделать сервис типа этих onlinezakladki, но выяснилось что он уже существует. Я тоже тогда искал как делать скриншоты, нашел какой то код, но он не работал, правда тогда я только начал изучение и по этому мне в нем ни чего не было понятно, по этому я не исправил его. Есть так же уже готовые платные сервисы которые делают подобное.
Ну все ребята, вроде вкурил тему! Выкладываю всем бесплатно, а для [vs] за 50 баксов! Решение как и писал выше такое: с помощью mPDF сохраняю скриншот страницы в pdf, а затем с помощью imagick перевожу в jpg. В последствии файл pdf удаляем (по необходимости). Решение, мягко говоря, далеко не мгновенное, но поскольку для моих потребностей это надо делать один раз в сутки да и то курлом, то вполне себе жизнеспособное. Ушел сводить все в один код. Если нужен листинг могу потом выложить. Всем спасибо и удачи. Пока!
А javascript он умеет? Вообще, вариант с phantomjs наиболее разумный, правда я бы взял nightmarejs - это обертка, работать с которой на порядок удобнее.
Код еще "сырой" но рабочий. В общем надо доработать "напильником". Переменную $style лучше конечно не прописывать, а спарсить с сайта, но в моем случае вполне приемлемо. Самая большая проблема на мой взгляд в том, что mPDF не читает стили, прописанные в тэгах (только в файле стиля). По этому данный способ НЕ УНИВЕРСАЛЬНЫЙ, то есть сделать скниншот любой страницы не получится. Но, повторюсь, для моей задачи вполне себе приемлемо. Для начала надо скачать и распаковать на сервере mPDF (в моем случае версия 5.7, хотя наверняка уже есть посвежее). Если страница не влезет в формат А4, то imagick сделает картинку только с последней страницы файла пдф, кому надо можно доточить до сохранения скриншотов всех страниц файла пдф. Про js боюсь даже предположить))) По поводу phantomjs, хостер предлагает его на тарифах с VPS, примерно полторы тыщи в месяц. Так что точим код дальше))) Код (PHP): <?php $url'="www.site.com"; $style=""style.css; $fh = fopen('$url','r'); if($fh) { while(!feof($fh)) $text.=fread($fh,40096); fclose($fh); } include("MPDF57/mpdf.php"); $mpdf = new mPDF('utf-8', 'A4', '7.5', '', 12, 7, 7, 7, 10, 10); /*задаем формат, отступы и.т.д.(кодировка, формат, шрифт, , слева, справа, сверху, снизу, , ,)*/ // $mpdf->charset_in = 'cp1251'; /*не забываем про русский по необходимости*/ $stylesheet = file_get_contents('$style'); /*подключаем css*/ $mpdf->WriteHTML($stylesheet, 1); $mpdf->list_indent_first_level = 0; $mpdf->WriteHTML($text, 2); /*формируем pdf*/ $mpdf->Output('result/file.pdf', 'F'); $pdf_file = 'result/file.pdf'; $im = new imagick($pdf_file); $i=0; foreach($im as $_img) { $i++; $_img->setResolution(300, 300); $_img->setImageFormat('png'); $_img->writeImage('result/image.png'); } $im->destroy(); echo "<img src='result/image.png'>"; ?> PHP, JavaScript, SQL и другой код пишите внутри тегов Код ( (Unknown Language)): [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
вот это самое главное 90 рублей в месяц https://firstvds.ru/products/vds_vps_cheap только у тех поддержи спроси какую ОС ставить, чтобы phantomjs пошёл.
DigitalOcean - 5 баксов, есть даже машины с предустановленной нодой. https://www.npmjs.com/package/phantomjs http://phantomjs.org/screen-capture.html - вот пример специально для тебя ) http://expressjs.com/ru/starter/basic-routing.html - фреймворк для быстрого написания api Тратишь вечер на чтение доков по ноде, затем ставишь все что необходимо, пишешь простую апишку, в которую можно будет передавать ссылку и получить картинку правильно отрендеренной странички, точно в таком же виде, в каком её рендерит хром. Профит.
Не могу разобраться с качеством изображения... Как его поменять в imagick? Пробую поменять параметры - результат ноль(( Код (PHP): $pdf_file = 'result/file.pdf'; $_img = new imagick($pdf_file); $_img->setResolution(1000, 1000); $_img->setCompressionQuality(1000); $_img->setImageFormat('jpg'); $_img->setOption('density','1000x1000'); $_img->writeImage('result/image.jpg'); $_img->destroy(); Здесь вот viewtopic.php?t=39209 человек тоже искал решение и нашел. Только где чего поменял не понятно. Может в курсе кто?