Realized I left this question unanswered and wanted to give a followup in case anyone else encounters this problem. I ended up using the code from the answer found here...
Print a ReportViewer Without Preview
I was able to create the reports using my web service and put them into a report viewer and then simply pass the report and the printer I wanted to print to as parameters to the code above and it handled the printing for me. The only thing I did was extend the functionality to accept a printer name as a parameter and use assign that as the specified printer that I wanted to print to.
Here is some sample code in case anyone wants to see the general flow I used.
List<ReportParameter> reportparms = new List<ReportParameter>();
ServerReport rpt = new ServerReport();
reportparms.Add(new ReportParameter("param1", param1));
rpt.ReportServerUrl = reportserver;
rpt.ReportPath = myReportPath;
rpt.SetParameters(reportparms);
//I created a class "ReportPrintDocument" for the code from the question linked above.
ReportPrintDocument rdp = new ReportPrintDocument(rpt, myPrinter);
rdp.PrinterSettings.PrinterName = ps.Printer;
if (p.PrinterSettings.IsValid)
{
rdp.Print();
}
There is some other logic here and there but that is the basic idea that will get the job done.