Страницы

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

суббота, 11 января 2020 г.

Кроссбраузерная автоматическая печать изображения (решено)

#javascript #печать #кроссбраузерность


Задача: сделать на сайте так, чтобы графический файл автоматически отправлялся на
принтер. Сама печать легко запускается через window.print(), но при этом распечатанный
результат получается разного размера из разных браузеров: из IE печатается, как и задумано,
на весь лист А4, из Firefox картинка занимает меньше четверти листа, из Opera и Chrome
— нечто среднее. Пробовал устанавливать размер картинки через CSS, указывая в качестве
единицы измерения дюймы (in) — не помогает.
Как сделать, чтобы рисунок печатался на полный лист из любого браузера?
UPD: Решил проблему, установив для рисунка width:100% через css media=print    


Ответы

Ответ 1



Браузеры практически не дают управлять параметрами печати. Для Опреы и Хрома можно указать отступы в CSS: @media print{ @page: {margin: 0%} } Остальные браузеры это игнорируют, подставляют значения, указываемые пользователем (или по дефолту). То же касается колонтитулов - полностью пользовательская настройка. А так печать картинки при выставленных одинаковых параметрах отступов, колонтитулов и галки "по ширине страницы" печатается одинаково. Устанавливайте картинке width:100% в правилах для @media print, дальнейшее будет зависеть от пользователя.

Ответ 2



Вариант 1: переопределить css картинки через @media print{}. Вариант 2: перед печатью установить нужные настройки печати. Но этим будет заниматься пользователь - все-таки, принтер его.

Ответ 3



Специально для вас подумал и вот что придумал: function atoprint(src) { var atext = ''; var captext = window.document.title; var alink = window.document.location; var prwin = open(''); //prwin.document.open(); prwin.document.writeln(htmls.text3); prwin.document.writeln('

'+captext+'<\/h1>'); prwin.document.writeln('
'+atext+'<\/div>'); prwin.document.writeln('
© site.ru<\/div>'); prwin.document.writeln('
Страница материала: '+alink+'<\/div>'); prwin.document.writeln('<\/div><\/body><\/html>'); prwin.print(); prwin.close; }; передаете только src ну и в разметке что у меня есть тоже можете что нибудь поправить!

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

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