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

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

Чтобы усложнить ситуацию, если мы представляем пользователя с 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
  • Печать Pdf в C #
  • Как распечатать PDF на сетевом принтере по умолчанию с помощью команды оболочки GhostScript (gswin32c.exe)
  • Как отправить документ на принтер и распечатать его?
  • Печать непосредственно из браузера без всплывающего windows печати
  • Есть ли веская причина использовать «printf» вместо «print» в java?
  • Как создать метод println / print для пользовательского classа
  • Печать JFrame и его компонентов
  • Разрывы страниц в Google Chrome
  • Печать документа WPF FlowDocument
  • Распечатайте существующий PDF (или другие файлы) в C #
  • Давайте будем гением компьютера.