Printing Documents in WSH - Printing Web Documents continued
(Page 7 of 7 )
You’ll notice that the Internet Explorer object is instructed to quit immediately after the If block. To prevent IE from exiting prematurely, we insert a Do…Loop that monitors the Boolean value we created earlier in order to know when our print job has completed.
That being said, how do we know when the print job has completed?
Whenever a print job is sent to a printer, the system creates a “print template” that describes how the printed document should look. Once the print job is completed, this template is then discarded.
As I said earlier, Internet Explorer provides an event that can be used to determine when a print job is completed. This event actually monitors the destruction of the print template. Since this doesn’t happen until a job is finished printing, it effectively lets us monitor when a print job has completed.
Sub IE_PrintTemplateTeardown(pDisp)
WScript.Sleep 200
blnPrintingComplete = True
End Sub
In order to do this you will need to place a subroutine at the end of your script. Your subroutine uses a naming convention that VBScript recognizes as an event handle. Notice that the subroutine name begins with the prefix we specified earlier, then an underscore, and finally the name of the event we want to monitor—in this case PrintTemplateTeardown.
Notice that I’ve also include a parameter in my declaration. This is what our script is going to receive as input whenever this event fires.
The contents of the subroutine are fairly simple. We pause script execution briefly to ensure that the print template has had time to be destroyed, and then we set our Boolean value to True to indicate that printing has completed.
Any time that the PrintTemplateTeardown event is fired, the code inside this subroutine will be executed. Since VBScript events are handled asynchronously, this will continue to happen while the script continues to execute regularly. This is why we created the loop earlier that monitors our Boolean value. The script will continue to loop indefinitely until that value is changed when this event fires.
You now have several different ways of printing documents in WSH. Feel free to use whatever method you choose depending on your software availability and document type. Whatever you choose, remember to have fun with it. Until next time, keep coding!
| DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware. |