I believe that isn't possible, but I wish to make certain.

One way possible is always to possess a print CSS (<link rel="stylesheet" href="..." media="print" />), but possess a server-side script pre-process it. Essentially only a simple rewrite rule to rewrite paper.cascading stylesheet, or whatever file you utilize, to become proxied to some script which will log the request with a database, after which finally output the particular CSS.

Obviously this is not an ideal method if a person utilizes a print preview it'll be also processed through the script.

You can't, there is nothing delivered to the server at these times, with no occasions are fired.

IE has onbeforeprint and onafterprint occasions you could utilize, but they're IE specific, so not counting them like a solution.

This could happen clientside making this impossible. The only real factor you can test would be to make a simple button to print the page and just hang a counter on that, wishing that everybody uses that button rather than the File -> Print option within the browser.

You cant ever positively confirm what clients use the output out of your service.

You cannot.

And even when you can, Someone may even have a Screenshot from the page, Printscreen ect...

if you wish to secure a content you will find different ways to get it done (non are totally immune)

It isn't possible. Even when you might have a car publish back event which fired when someone attempted to print, there's nothing preventing them from saving the HTML page to disk and printing it later on.

Since many stated you cannot.

Like a side not, whether it was internally according to your organization, and also you desired to see who had printed a webpage, should you used ink jet printers which had good auditing/logging you may choose to look into the ink jet printers logs...