You may be interested in the printer module.
It allows you to list the printers available in the server’s CUPS and define rules to decide where reports are sent to. You can make rules such as: “all reports printed by user X should be sent directly to printer Y”, “report Z printed from IP 126.96.36.199 should be sent to users’ default printer”, “report Z should be sent to the user”, etc.
You can play with the following parameters:
- IP Address of the client
- Printer state (do not send to printer if it is not working, for example)
For each combination of those parameters you can define the action (send to printer or to the user) as well as default printer to use.
The module already works with jasper_reports module but you’d need a few lines of code to make it work with core reports, your own or html_report (a patch would be welcomed for the latter).