title: How can I print a user selected document?
body: <p>I want to select a file using a file dialog and then print the selected file using the <code>PrintDocument.Print</code> method.</p>
  
  <p>Below is some code which is a partial implementation of what I am trying to accomplish:</p>
  
  <pre><code>     using System;
       using System.Drawing.Printing;
       using System.IO;
       using System.Windows.Forms;
  
  
       namespace InstalledAndDefaultPrinters
       {
       class Program
       {
  
  
       static void Main(string[] args)
       {   
          string filename="";
          foreach (string printer in PrinterSettings.InstalledPrinters)
              Console.WriteLine(printer);
          var printerSettings = new PrinterSettings();
          Console.WriteLine(string.Format("The default printer is: {0}", printerSettings.PrinterName));
  
          Console.WriteLine(printerSettings.PrintFileName); 
          OpenFileDialog fdlg = new OpenFileDialog();
          fdlg.Title = "Open File Dialog";
          fdlg.InitialDirectory = @"C:\ ";
          fdlg.RestoreDirectory = true;
          fdlg.ShowDialog();
          Console.WriteLine(fdlg.Title);
          if (fdlg.ShowDialog() == DialogResult.OK)
          {
              filename = String.Copy(fdlg.FileName);
          }
          Console.WriteLine(filename);
  
          PrintDialog printdg = new PrintDialog();
          PrintDocument pd_doc = new PrintDocument();
          printdg.ShowDialog();
          if (printdg.ShowDialog() == DialogResult.OK)
          {
  </code></pre>
  
  <p>It is at this point that I would like to print the selected file.</p>
  
  <pre><code>            pd_doc.Print();
          }       
      }
  </code></pre>
  
  <p>The code I have above clearly does not do what I need. What alternative approach might steer me in the right direction?</p>