Well Grasshopper, I realise that birds are your enemies, and that any reduction in their population might be advantageous to your family. Killing trees for production of paper also reduces birds nesting sites, but that is a poor reason to use a lot of paper. The world is an holistic environment and there is a place for everything in the Lord G*d's realm.
Seriously though, I strongly counsel against automatically sending output to a printer unless there are stringent controls to prevent the printer bins being emptied by an accidentally oversize output file. Almost nobody reads 100 pages of overblown output and you just wasted trees and carbon. However, if you can be sure that you won't kill a tree (by trapping and limiting allowable output quantity), then the PrintTo Procedure allows output to be routed to a destination by specifying the network address of the printer.
Note that the printer must be reachable from the server, so there may be problems sending to a Windows defined printer from a Unix Application server. Since you will invoke the procedure and close it around the output step, you will need to divide the data set and send it in pieces to the PrintTo and Report steps.
As for emailing results (which is a much more conservative and attractive solution), assuming your application server has the capability to send email through your SMTP accessible Post Office server, then simple data step directives will allow you to define and change email addresses as you process the data in a single data step. With a format procedure you can map department values to email addresses and switch email destinations as you step through the data.
A tutorial on "Emailing from your SAS session, how and why" from SUGI 31 is available on the SAS Support web site. Look towards the end where I specified changes of destinations according to strata of house prices. Your code would be very similar.