The pdf file that is generated on the server has to come down to the client (i.e. downloaded) so cannot really print something that is not on the client. In case you want to bypass the file saving action (explicitly done by the user) and go directly to print preview, you can try something like this before returning the file:
var pdfFileName = "Some Filename"; if (Request.Browser.Browser == "InternetExplorer" || Request.Browser.Browser == "IE") { Response.AppendHeader("content-disposition", @"attachment;filename=""" + pdfFileName + @".pdf"""); } else { Response.AppendHeader("content-disposition", @"inline;filename=""" + pdfFileName + @".pdf"""); } byte[] pdfBytes = ... // get the file data into this variable return File(pdfBytes, "application/pdf")
<iframe>or<object>. The displayed pdf will have native controls one of which is the print button, beware that you can't control or code behind those controls as those are just browser features. Viewing of pdf may vary per browser.