Обнаружение события печати в браузере

Можно ли обнаружить, когда пользователь печатает что-то из своего браузера?

Чтобы усложнить ситуацию, если мы представляем пользователя с PDF-документом в новом окне, можно ли обнаружить печать этого документа (если пользователь распечатает его из windows браузера)?

Самое близкое, что я смог найти, – это реализовать пользовательскую функцию печати (что-то вроде этого ) и отслеживать, когда это вызывается

Меня в первую очередь интересует решение, которое работает для Internet Explorer (6 или более поздних версий)

Теперь вы можете обнаружить запрос на печать в IE 5+, Firefox 6+, Chrome 9+ и Safari 5+, используя следующую технику:

(function() { var beforePrint = function() { console.log('Functionality to run before printing.'); }; var afterPrint = function() { console.log('Functionality to run after printing'); }; if (window.matchMedia) { var mediaQueryList = window.matchMedia('print'); mediaQueryList.addListener(function(mql) { if (mql.matches) { beforePrint(); } else { afterPrint(); } }); } window.onbeforeprint = beforePrint; window.onafterprint = afterPrint; }()); 

Я подробно расскажу о том, что это делает и что его можно использовать для http://tjvantoll.com/2012/06/15/detecting-print-requests-with-javascript/ .

Для Internet Exploder существуют события window.onbeforeprint и window.onafterprint но они не работают с каким-либо другим браузером, и в результате они обычно бесполезны.

По какой-то причине они кажутся одинаковыми, оба выполняют свои обработчики событий до того, как откроется окно печати.

Но в случае, если вы этого хотите, несмотря на эти оговорки, вот пример:

 window.onbeforeprint = function() { alert("Printing shall commence!"); } 

Если это только для целей отслеживания, возможно, вы могли бы установить фоновый url в печатных СМИ CSS на страницу сервера (.aspx, .php и т. Д.), А затем сделать что-то на сервере?

Этот парень утверждает, что это работает.

Это не так просто, как решение TJ, но оно может быть менее ошибочным (см. Сообщение в блоге TJs для проблем, которые он нашел), когда требуется только отслеживание.

  • Каков самый простой способ печати массива Java?
  • Печать без пробела в python 3
  • Удалить верхний и нижний колонтитулы из windows .print ()
  • Удалить и заменить Печатные элементы
  • icons загрузочных бутлетов Twitter отсутствуют в печати
  • Как скрыть элемент при печати веб-страницы?
  • Написание виртуального принтера в .NET
  • Печать Pdf в C #
  • Как программно печатать в PDF-файл без запроса имени файла в C # с помощью принтера Microsoft Print To PDF, который поставляется с Windows 10
  • Показывать DataFrame как таблицу в iPython Notebook
  • Юникодовые символы на принтере ZPL
  • Давайте будем гением компьютера.