Можно ли напечатать веб-страницу "как есть"?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 27.10.24 12:05
Оценка: 2 (1)
Уже много лет, с переменным успехом, борюсь с косяками печати веб-страниц из браузеров. Поскольку я не люблю печатать на бумагу, и почти всегда вывожу в PDF, то всегда полагал, что проблемы возникают именно при преобразовании HTML в PDF. Действительно, где-то лучше работает Save to PDF, где-то — печать на виртуальный PDF-принтер. Косяки при печати на бумагу возникали в основном на навороченных сайтах, поэтому списывал их на кривизну рук веб-программистов. А сегодня попробовал печатать и в PDF, и на принтеры, и везде получается совсем не то, что браузер отображает в окне.

Я в упор не понимаю, как такое может получаться технически. Не знаю, как в линуксах, но в винде операция "печать на принтер" отличается от операции "рендеринг в окне" только выбором целевого устройства.

Знаю, что на рендеринг могут влиять стили CSS, но есть страницы без @media/print, просто состоящие из нескольких кадров. Их можно печатать покадрово, но ни за что нельзя напечатать просто страницу в том же виде, как она выглядит в окне.

Есть ли браузеры, умеющие рендерить на устройство "принтер" то же самое, что он рендерит в окно?
Re: Можно ли напечатать веб-страницу "как есть"?
От: kov_serg Россия  
Дата: 27.10.24 12:30
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:


ЕМ>Есть ли браузеры, умеющие рендерить на устройство "принтер" то же самое, что он рендерит в окно?


Нету. Но вы можете нарендирить картинку в headless browser и потом её распечатать. Печать и сохранение html это то что браудеры умеют очень хреново.
Re[2]: Можно ли напечатать веб-страницу "как есть"?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 27.10.24 12:32
Оценка:
Здравствуйте, kov_serg, Вы писали:

ЕМ>>Есть ли браузеры, умеющие рендерить на устройство "принтер" то же самое, что он рендерит в окно?


_>Нету.


Это принципиальная позиция разработчиков браузеров?
Re[3]: Можно ли напечатать веб-страницу "как есть"?
От: kov_serg Россия  
Дата: 27.10.24 12:36
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:


ЕМ>Это принципиальная позиция разработчиков браузеров?


Это не приоритетная задача да и не простая.
Re[4]: Можно ли напечатать веб-страницу "как есть"?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 27.10.24 12:44
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>Это не приоритетная задача да и не простая.


А конкретнее? Что сложного в том, чтобы рисовать на принтер в точности так же, как он рисует в окно?

Если есть сложности с использованием шрифтов, то в крайнем случае можно тупо делать растровое изображение.
Re[5]: Можно ли напечатать веб-страницу "как есть"?
От: kov_serg Россия  
Дата: 27.10.24 12:55
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>А конкретнее? Что сложного в том, чтобы рисовать на принтер в точности так же, как он рисует в окно?

ЕМ>Если есть сложности с использованием шрифтов, то в крайнем случае можно тупо делать растровое изображение.
Проблема в том что контент динамический, может не влазить на страницу и надо разбивать.
Для этого есть css для печати и если он вменяемый то печатать будет. Если нету то увы, обычно получается фигня.
Но для этого эту часть тоже надо поддерживать, а это дорого не потому что это невозможно, а потому что всё переусложнили.
Re: Можно ли напечатать веб-страницу "как есть"?
От: Alekzander  
Дата: 27.10.24 13:49
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Уже много лет, с переменным успехом, борюсь с косяками печати веб-страниц из браузеров. Поскольку я не люблю печатать на бумагу, и почти всегда вывожу в PDF, то всегда полагал, что проблемы возникают именно при преобразовании HTML в PDF. Действительно, где-то лучше работает Save to PDF, где-то — печать на виртуальный PDF-принтер. Косяки при печати на бумагу возникали в основном на навороченных сайтах, поэтому списывал их на кривизну рук веб-программистов. А сегодня попробовал печатать и в PDF, и на принтеры, и везде получается совсем не то, что браузер отображает в окне.


ЕМ>Я в упор не понимаю, как такое может получаться технически. Не знаю, как в линуксах, но в винде операция "печать на принтер" отличается от операции "рендеринг в окне" только выбором целевого устройства.


ЕМ>Знаю, что на рендеринг могут влиять стили CSS, но есть страницы без @media/print, просто состоящие из нескольких кадров. Их можно печатать покадрово, но ни за что нельзя напечатать просто страницу в том же виде, как она выглядит в окне.


ЕМ>Есть ли браузеры, умеющие рендерить на устройство "принтер" то же самое, что он рендерит в окно?


А нельзя выложить пару примеров?
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Re: Можно ли напечатать веб-страницу "как есть"?
От: F3V  
Дата: 27.10.24 14:39
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>А сегодня попробовал печатать и в PDF, и на принтеры, и везде получается совсем не то, что браузер отображает в окне.


ЕМ>Я в упор не понимаю, как такое может получаться технически.


ЕМ>Знаю, что на рендеринг могут влиять стили CSS, но есть страницы без @media/print, просто состоящие из нескольких кадров. Их можно печатать покадрово, но ни за что нельзя напечатать просто страницу в том же виде, как она выглядит в окне.


ЕМ>Есть ли браузеры, умеющие рендерить на устройство "принтер" то же самое, что он рендерит в окно?


Кроме CSS есть такая штука, как адаптивная вёрстка, которая может быть реализована с использованием CSS и/или ещё и Js-коде.
При изменении экрана, всё это это взаимодействует и можно получать разные компоновки под разные экраны.
При переходе на печать изменяются параметры(формат) окна(страницы) отображения, что приводит к перекомпоновке.

По идее, при печати можно обойтись одной видимой компоновкой и её html представлением,
но при переносе на другое разрешение оно будет неадекватно масштабироваться.

В общем, лучше пусть разработчики сами решают, как их сайт должен выглядеть при печати на разных устройствах.
Re[6]: Можно ли напечатать веб-страницу "как есть"?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 27.10.24 14:40
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>контент динамический


В каком смысле динамический? Я пытаюсь печатать страницы, на которых ничто не шевелится — все неподвижно.

_>может не влазить на страницу и надо разбивать.


Ну и разбивал бы хоть как-нибудь, лишь бы на бумаге можно было увидеть то же самое, что видно в окне, пусть и с другими интервалами.

Кстати, а современные системы не поддерживают рулонных принтеров? И какое в PDF ограничение на высоту страницы?

_>Но для этого эту часть тоже надо поддерживать, а это дорого не потому что это невозможно, а потому что всё переусложнили.


В чем конкретно может быть сложность тупо разрезать окно поблизости от границы предполагаемой страницы?

Если что, все страницы, которые мне было нужно печатать (на бумагу или в PDF), не содержали больших блоков, перекрывающихся по высоте, и всегда содержали достаточное количество мест, где их можно было бы разделить горизонтально.
Re[2]: Можно ли напечатать веб-страницу "как есть"?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 27.10.24 14:54
Оценка:
Здравствуйте, Alekzander, Вы писали:

A>нельзя выложить пару примеров?


Навскидку — нельзя, ибо чаще всего это различные заказы (товары, билеты и т.п.). Скажем, в окне бронирования авиабилета вижу номер/дату паспорта, email и номер телефона, а вывожу в PDF — там этой информации нет, печатаю на бумагу — на ней тоже нет. В тех PDF, что присылает оператор, этой информации нет, или она неполная — там все вообще в другом формате

Регулярно сталкивался с такой хренью на сайтах, где есть разные таблицы, но сейчас не вспомню, где именно.
Re: Можно ли напечатать веб-страницу "как есть"?
От: bnk СССР http://unmanagedvisio.com/
Дата: 27.10.24 15:01
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Есть ли браузеры, умеющие рендерить на устройство "принтер" то же самое, что он рендерит в окно?


Ну можно просто скриншот сделать и его распечатать
Re[3]: Можно ли напечатать веб-страницу "как есть"?
От: Alekzander  
Дата: 27.10.24 15:39
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

A>>нельзя выложить пару примеров?


ЕМ>Навскидку — нельзя, ибо чаще всего это различные заказы (товары, билеты и т.п.). Скажем, в окне бронирования авиабилета вижу номер/дату паспорта, email и номер телефона, а вывожу в PDF — там этой информации нет, печатаю на бумагу — на ней тоже нет. В тех PDF, что присылает оператор, этой информации нет, или она неполная — там все вообще в другом формате


ЕМ>Регулярно сталкивался с такой хренью на сайтах, где есть разные таблицы, но сейчас не вспомню, где именно.


Тогда PrtSc / три пальца вниз.
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Re: Можно ли напечатать веб-страницу "как есть"?
От: mtnl  
Дата: 27.10.24 16:29
Оценка: +1
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Есть ли браузеры, умеющие рендерить на устройство "принтер" то же самое, что он рендерит в окно?


Для хрома есть плагин GoFullPage — он делает скриншот в полный рост страницы, который можно сохранить в pdf.
Re[2]: Можно ли напечатать веб-страницу "как есть"?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 27.10.24 16:39
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>можно просто скриншот сделать и его распечатать


Можно, от безысходности. Но и там проблема, если страница не влезает в окно. А сделать окно произвольного размера браузер не умеет — даже в режиме имитации экранов разного размера максимальная высота ограничена несколькими тысячами точек.
Re[3]: Можно ли напечатать веб-страницу "как есть"?
От: flаt  
Дата: 27.10.24 17:09
Оценка: 16 (1)
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>А сделать окно произвольного размера браузер не умеет


Полно аддонов для "безлимитных" скриншотов веб-страниц. Плюс, некоторые браузеры умеют это из коробки (Vivaldi, например).
Re[3]: Можно ли напечатать веб-страницу "как есть"?
От: bnk СССР http://unmanagedvisio.com/
Дата: 27.10.24 17:09
Оценка: 16 (1)
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Можно, от безысходности. Но и там проблема, если страница не влезает в окно. А сделать окно произвольного размера браузер не умеет — даже в режиме имитации экранов разного размера максимальная высота ограничена несколькими тысячами точек.


Попсовые скриншотилки (picpick, snagit) умеют окно проскроллить, и сделать большой скиншот. Ну как вариант.
Re[3]: Можно ли напечатать веб-страницу "как есть"?
От: Stanislaw K СССР  
Дата: 27.10.24 17:38
Оценка: 16 (1)
Здравствуйте, Евгений Музыченко, Вы писали:

A>>нельзя выложить пару примеров?


ЕМ>Навскидку — нельзя, ибо чаще всего это различные заказы (товары, билеты и т.п.). Скажем, в окне бронирования авиабилета вижу номер/дату паспорта, email и номер телефона, а вывожу в PDF — там этой информации нет, печатаю на бумагу — на ней тоже нет. В тех PDF, что присылает оператор, этой информации нет, или она неполная — там все вообще в другом формате


Тоже бесит.

В Firefox есть дополнение, позволяющее редактировать страницу и видеть результат перед печатью или сохранением в файл. можно убрать всякие лишние банеры с навигационными элементами.

https://addons.mozilla.org/ru/firefox/addon/print-edit-we/


ЕМ>Регулярно сталкивался с такой хренью на сайтах, где есть разные таблицы, но сейчас не вспомню, где именно.


В Firefox есть встроенная скриншотилка as is.

Вы можете создавать снимки экрана для захвата видимых частей веб-страниц или даже полных веб-страниц, а также копирования или сохранения этих изображений.


https://support.mozilla.org/ru/kb/sozdanie-skrinshotov-v-firefox
Все проблемы от жадности и глупости
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.