title: Programmatically printing directory of word documents... last file always skipped
body: <p>I am having a problem when trying to programmatically print a directory of word documents.  In this example, I am trying to print only the files with the "3_" prefix.  The problem is that the file does not print unless there are two files with the 3_ prefix.  I have been looking around forever to figure this problem out.  Is there something wrong with the way I am opening the file?  It works only when there are two files in the directory, in which case it will print out only one of the two files.</p>
  
  <p>Edit:  I did try a messagebox and the path is correct.  The filename is correct.  Also, if I am watching the printer in the printers folder, a document will flash up for a brief second and then disappear ( I have printing paused so that I can see the output).  If word is giving me an error, why doesn't it show?  And why does this work if there are two files in the directory with the 3_ prefix?</p>
  
  <p>Edit: I think it is a problem with the printout() method.  When I set the app to visible and run it, the document opens fine, but nothing is printed.  I can open the document manually and print (which works fine).</p>
  
  <p>Edit: Thank you all for the answers.  The background parameter in the printout() method was the issue.  The program would quit before printing could fully spool (which is why I would see a document flash in the print queue and disappear.  Turning background printing off required the document to stay open and print, which was key.  Thank you</p>
  
  <pre><code>string[] filesToCheck = Directory.GetFiles(clientDirectoryPath);
      Object filename = null;
          for (int i = 0; i &lt; filesToCheck.Count();i++ )
          {
              if(filesToCheck[i].Contains("3_"))
              {
                  filename = filesToCheck[i];
                  wrdDoc = wrdApp.Documents.Open(ref filename, ref oMissing, ref oTrue, ref oFalse,
                                                 ref oMissing, ref oMissing,
                                                 ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                                                 ref oMissing,
                                                 ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                                                 ref oMissing);
                  wrdDoc.PageSetup.FirstPageTray = letterHeadTray;
                  wrdDoc.PageSetup.OtherPagesTray = defaultTray;
                  wrdDoc.PrintOut(ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                                  ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                                  ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                                  ref oMissing, ref oMissing, ref oMissing);
                  wrdDoc.Close(ref oFalse, ref oMissing, ref oMissing);
                  wrdDoc = null;
              }
          }
  </code></pre>