Monitoring print job is sometime very important. Organization (or may be individuals) may need to monitor print job probably to reduce waste or misusage of print. There could be other reason as well. In any case, it is helpful to know how to monitor your printer. One of the way which I know works well in Windows XP (or probably older version as well).
To monitor print job, one could either use print notification event (which I am not sure how to attach) or use the event viewer utility logs in Windows XP. Log from event viewer utility can be supplied to your program which can parse it show it in whatever format you need.
However, Windows XP, by default, does not automatically enable the log of print job (like type of document, timestamp, number of pages etc). To enable it,
1) please click on “Start” –> “Printers and Faxes”.
2) In “Printers and Faxes” explorer, click on “File” –> “Server Properties”.
3) In "Print Server Properties" configuration dialog, click on “Advanced” tab and make sure that “Log spooler information events” checkbox is checked.
When enabled, print log can either be viewed using Event viewer utility (Control Panel –> Administrative Tools –> Event Viewer –> System) or execute command using eventquery. For example,
cscript c:\WINDOWS\system32\eventquery.vbs /V /FO CSV /L System /FI "source eq print"
would give result as,
If you look carefully, you would notice that in “Description” field data, required details are available. For example- Document serial number, document name, User name which executed print, printer name, number of pages printed etc.
Further, You can also provide other option with eventquery to filter/format in output. (Obviously, you can find other possible option using “cscript c:\WINDOWS\system32\eventquery.vbs /?” ).