Страница 1 из 2

Screenshot всей страницы

Добавлено: 30 ноя 2019, 22:03
super
Есть задача сделать screenshot всей страницы.
Делаю $body->screenshot_by_number("c:\\screenshot.jpg", 0); но получаю только видимую часть, какие есть мысли?

Тоже делает только видимую часть $webpage->print_screen($filepath,-1,-1,-1,-1,true);

Re: Screenshot всей страницы

Добавлено: 02 дек 2019, 14:27
super
13 человек посмотрело и мыслей 0 ? :)

Re: Screenshot всей страницы

Добавлено: 02 дек 2019, 15:19
Support
super писал(а):
02 дек 2019, 14:27
13 человек посмотрело и мыслей 0 ? :)
проверяем функционал для решения вашей задачи.

можно с масштабом поиграться.

Re: Screenshot всей страницы

Добавлено: 03 дек 2019, 00:02
LazyCot
Можно скриншотить по частям, прокручивать и склеивать.
Похоже, что браузерные расширения с таким функционалом так и работают.
Склеивать можно утилитой imagemagick из командной строки (app.shell_execute)
Пример с параметрами Можно посмотреть здесь

Re: Screenshot всей страницы

Добавлено: 03 дек 2019, 21:20
super
Понял, спасибо!

Re: Screenshot всей страницы

Добавлено: 04 дек 2019, 01:38
bigfozzy
добавлена функция webpage->print_body по аналогии с webpage->print_screen для скриншота всей страницы

Re: Screenshot всей страницы

Добавлено: 04 дек 2019, 10:56
super
bigfozzy писал(а):
04 дек 2019, 01:38
добавлена функция webpage->print_body по аналогии с webpage->print_screen для скриншота всей страницы
Использую webpage->print_screen, делает только видимую часть.

Re: Screenshot всей страницы

Добавлено: 04 дек 2019, 14:13
bigfozzy
Попробуйте этот скрипт - все норм ? webpage->print_screen - дергает только видимую часть и много кто ее использует - поэтому ввели новую функцию для всей страницы:
<?php $xhe_host = "127.0.0.1:7013";

// подключим объект для управления эмулятором, если еще не подключен
if (!isset($path))
  $path="../../../Templates/xweb_human_emulator.php";
require($path);

// начало
echo "<hr><font color=blue>webpage->".basename (__FILE__)."</font><hr>";

// 1 
echo "1. Перейдем  : ";
echo $browser->navigate("http://www.bigfozzy.com")."<br>";
sleep(2);

// 2 
echo "2. Распечатаем всю страницу : ";
echo $webpage->print_body("c:\\yahoo.png")."<br>";

// 2 
echo "2. Распечатаем кусок страницы : ";
echo $webpage->print_body("c:\\yahoo1.jpeg",200,200,400,400)."<br>";

// 3 
echo "3. Распечатаем верх страницы : ";
echo $webpage->print_body("c:\\yahoo2.bmp",-1,-1,-1,200)."<br>";

// 4 
echo "4. Распечатаем левую часть страницы : ";
echo $webpage->print_body("c:\\yahoo3.gif",-1,-1,200,-1)."<br>";

// 5
echo "5. Распечатаем всю страницу (упрощенно) : ";
echo $webpage->print_body("c:\\yahoo4.jpeg",-1,-1,-1,-1,true)."<br>";

// покажем распечатки
$app->shell_execute("","c:\\yahoo.png","","c:\\",true);sleep(2);
$app->shell_execute("","c:\\yahoo1.jpeg","","c:\\",true);sleep(2);
$app->shell_execute("","c:\\yahoo2.bmp","","c:\\",true);sleep(2);
$app->shell_execute("","c:\\yahoo3.gif","","c:\\",true);sleep(2);
$app->shell_execute("","c:\\yahoo4.jpeg","","c:\\",true);sleep(2);

// конец
echo "<hr><br>";

// Quit
$app->quit();
?>

Re: Screenshot всей страницы

Добавлено: 05 дек 2019, 20:56
super
Отлично, спасибо!

Re: Screenshot всей страницы

Добавлено: 28 дек 2019, 23:41
super
Подскажите, как избавиться от черного фона, когда делаю $webpage->print_body

Re: Screenshot всей страницы

Добавлено: 29 дек 2019, 20:20
Support
super писал(а):
28 дек 2019, 23:41
Подскажите, как избавиться от черного фона, когда делаю $webpage->print_body

А как повторить получение чёрного фона?

Re: Screenshot всей страницы

Добавлено: 30 дек 2019, 12:24
super

Код: Выделить всё

$browser->navigate("https://www.google.com/search?q=site%3Ahumanemulator.net");
$browser->wait_for(3,3);
$webpage->print_body("google.jpg");

Re: Screenshot всей страницы

Добавлено: 30 дек 2019, 12:27
super
И вот, по умолчанию $as_gray=false , но бывает так

Re: Screenshot всей страницы

Добавлено: 06 янв 2020, 18:03
bigfozzy
Спасибо, исправлено, будет доступно при следующем обновлении.

Re: Screenshot всей страницы

Добавлено: 06 янв 2020, 23:27
super
Отлично, спасибо!