PrintDocument can print anything you can "draw" using System.Drawing.Graphics class which sadly, it does not support PDF, nor Docx, etc but just simple elements like lines, rects, ellipses, text and images. If you want to print doc, pdf, etc to the client printer you can just let the user to download the document and print it "manually" or try
this code BUT it requires the client to have installed Word for doc, Adobe Reader for PDF + another tool.