<html> <head> <title>PrinterBvr Behavior: sample #1 - Brochure Machine</title> <link rel="stylesheet" type="text/css" href="css/printtemplate.css"/> <?import declarenamespace namespace="tp" implementation="../common/printer.htc"/> <?import declarenamespace namespace="ie" implementation="#default"> <?import declarenamespace namespace="tp" implementation="htc/ruler.htc"> <?import declarenamespace namespace="tp" implementation="htc/printPreviewToolbar.htc"> </head> <body scroll="no"> <tp:templateprinter id=printer style="display:none"/> <tp:ppvtoolbar id="tb" /> <div id="pagecontainer"> <tp:ruler ID="oRulerH" orientation="horizontal" attach="document.all.zoomcontainer" ID="oRulerH" max="11" units="in" style="position:absolute;top:0px;left:26px;"/> <tp:ruler ID="oRulerV" orientation="vertical" attach="document.all.zoomcontainer" ID="oRulerV" max="8.5" units="in" style="position:absolute;top:27px;left:0px;"/> <div id="zoomcontainer" style="scroll:no"> <div class="borderstyle"> <ie:devicerect id="page1" class="pagestyle" media="print" style="top:0;padding:0;margin:0;border:0"> <blockquote><br>page 1 !!!</blockquote> </ie:devicerect> </div> <div class="borderstyle"> <ie:devicerect id="page2" class="pagestyle" media="print" style="top:0;padding:0;margin:0;border:0"> <blockquote><br>page 2 !!!</blockquote> </ie:devicerect> </div> </div> </div> <script language="JavaScript"> var oCurrentPage = document.all.page1; function window::onload() { setTimeout(Init, 100); } function Init() { pagecontainer.style.top = tb.offsetHeight; pagecontainer.style.height = document.body.clientHeight - tb.offsetHeight; zoomcontainer.style.zoom = "100%"; InitClasses(); AttachDialogEvents(); showPage(1); listener = new Listener(); tb.listener = listener; tb.pageCount = 2; tb.zoomcontainer = document.all("zoomcontainer"); tb.currentZoom = 100; } function Listener(){ this.print = function () { DoPrint(); } this.doScroll = function (pageNumber) { showPage( pageNumber ); } }
function showPage(iCurrentPage) { oCurrentPage.parentElement.style.top = -20000; oCurrentPage = eval("document.all.page"+iCurrentPage); oCurrentPage.parentElement.style.top = 0; tb.currentPage = iCurrentPage; } function InitClasses() { oRulerV.max = printer.pageHeight / 100; oRulerH.max = printer.pageWidth / 100; } function AttachDialogEvents() { tb.attachEvent('onZoomChanged', ZoomChanged); tb.attachEvent('onPageSetupShowed', DoPageSetup); window.attachEvent('onerror', HandleError); document.body.attachEvent('onkeypress', OnKeyPress); } function ZoomChanged() { var nNewVal = event.zoom; oRulerH.style.zoom = nNewVal + "%"; oRulerV.style.zoom = nNewVal + "%"; var leftPos = oRulerV.offsetLeft + oRulerV.offsetWidth+10; var topPos = oRulerH.offsetTop + oRulerH.offsetHeight+10; oRulerH.style.left = leftPos*(nNewVal/100); oRulerV.style.top = topPos*(nNewVal/100); zoomcontainer.style.left = parseInt(oRulerH.style.left); zoomcontainer.style.top = parseInt(oRulerV.style.top); } function DoPageSetup(){ event.returnValue = false; event.cancelBubble = true; } function DoPrint() { // Print var oDeviceRectCollection = document.all.tags("DEVICERECT"); printer.updatePageStatus(1); printer.startDoc("PrinterBvr Behavior: sample #1 - Brochure Machine"); for (i = 0; i < oDeviceRectCollection.length; i++) printer.printPage(oDeviceRectCollection[i]); printer.stopDoc(); printer.updatePageStatus(0); showPage(1); } function OnKeyPress() { if (event.keyCode == 27) Close(); } function HandleError(message, url, line){ alert("There was an internal error, and Internet Explorer is unable to print this document."); window.close(); return true; } function Close() { printer.updatePageStatus(-1); window.close(); } </script> </body> </html>