Mercurial > hg > orthanc-stone
view Applications/StoneWebViewer/WebApplication/print.js @ 1575:e4a52cbbdd70
working on print
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 23 Sep 2020 17:25:25 +0200 |
parents | e0045462a25c |
children | 8c5f9864545f |
line wrap: on
line source
function beforePrint(event) { var body = $('body'); body.addClass('print'); // because firefox does not support/executes codes after the cloned document as been rendered // https://bugzilla.mozilla.org/show_bug.cgi?format=default&id=1048317 // we cannot calculate using the good body size for the clone document // so we have to hardcode the body width (meaning we can only renders in A4 in firefox); var uaParser = new UAParser(); var isFirefox = (uaParser.getBrowser().name === 'Firefox'); var isIE = (uaParser.getBrowser().name === 'IE'); var isEdge = (uaParser.getBrowser().name === 'Edge'); //console.log('ua parser', uaParser.getBrowser()); if (isFirefox || isIE || isEdge) { if (0) { // This is Letter body.css('width', '8.5in'); body.css('height', '11in'); } else { // This is A4 body.css('width', '210mm'); body.css('height', '296mm'); // If using "297mm", Firefox creates a second blank page } } $('#viewport canvas').each(function(key, canvas) { if ($(canvas).is(':visible')) { $(canvas).width($(canvas).parent().width()); $(canvas).height($(canvas).parent().height()); } }); stone.FitForPrint(); }; function afterPrint() { var body = $('body'); body.removeClass('print'); body.css('width', '100%'); body.css('height', '100%'); $('#viewport canvas').css('width', '100%'); $('#viewport canvas').css('height', '100%'); stone.FitForPrint(); } window.addEventListener('beforeprint', function(event) { beforePrint(event); }); var printMedia = window.matchMedia('print'); printMedia.addListener(function(mql) { if (mql.matches) { // webkit equivalent of onbeforeprint beforePrint(); } }); window.addEventListener('afterprint', function() { afterPrint(); }); /*vm.cancelPrintMode = function() { afterPrint(); } */