Очень древний код от Ю.Б., еще со времен медтеста. Пусть будет.
private void PrintResBtn_Click(object sender, EventArgs e) { this.Cursor = Cursors.WaitCursor; //стиль курсора - ждущий SaveResFileD.FileName = StudentLabel.Text + " " + TestDateLabel.Text.Substring(0, 11) + ".doc"; SaveResFileD.Filter = "Документ Word (*.doc)|*.doc"; string FilePath = ""; if (SaveResFileD.ShowDialog() == DialogResult.OK) { this.Cursor = Cursors.WaitCursor; //стиль курсора - ждущий //Сохраняем содержимое текстового поля в файл заявки FileInfo NewRequestFile = new FileInfo(SaveResFileD.FileName); NewRequestFile.Create().Close(); ResultRTB.AppendText("\t\t\t\tРЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ \n\n "); ResultRTB.AppendText("\n\t\tСтудент " + StudentLabel.Text + "\t\t\t Группа " + GroupBox.Text + "\n\n"); ResultRTB.AppendText("\t\tДата тестирования " + TestDateLabel.Text.Substring(0, 11) + "\n\n"); ResultRTB.AppendText(TT_TextTaskBox.Text); ResultRTB.AppendText("\n\n---------------------------------------------------------\n"); for (int i = 0; i < ResultGrid.RowCount; i++) { ResultRTB.AppendText("\tВопрос № " + (i + 1).ToString() + "\t" + ResultGrid[0, i].Value.ToString() + "\n\tОтвет -\t" + ResultGrid[1, i].Value.ToString() + "\n\tРезультат\t" + ResultGrid[2, i].Value.ToString() + "\n"); ResultRTB.AppendText("---------------------------------------------------------\n"); } ResultRTB.SaveFile(SaveResFileD.FileName); FilePath = SaveResFileD.FileName; this.Cursor = Cursors.Arrow; } try { //создаем оъект класса MicrosoftWord //OBJECT OF MISSING "NULL VALUE" Object oMissing = System.Reflection.Missing.Value; Object oTemplatePath = FilePath; //OBJECTS OF FALSE AND TRUE Object oTrue = true; Object oFalse = false; //CREATING OBJECTS OF WORD AND DOCUMENT Word.Application oWord = new Word.Application(); oWord.Caption = FilePath; Word.Document oWordDoc = new Word.Document(); //MAKING THE APPLICATION VISIBLE oWord.Visible = true; //ADDING A NEW DOCUMENT TO THE APPLICATION oWordDoc = oWord.Documents.Add(ref oTemplatePath, ref oMissing, ref oMissing, ref oMissing); Word.ApplicationClass WordApp = new Word.ApplicationClass(); } catch (Exception PrEx) { } finally { if (DBConnection.State == ConnectionState.Open) DBConnection.Close(); } /* //Сохраняем содержимое текстового поля в файл заявки FileInfo NewResFile = new FileInfo(NewRequestFilePath); NewRequestFile.Create().Close(); //RequestBox.SaveFile(NewRequestFilePath); try { //создаем оъект класса MicrosoftWord //OBJECT OF MISSING "NULL VALUE" Object oMissing = System.Reflection.Missing.Value; Object oTemplatePath = RequestDir + @"\" + DateTime.Now.Day.ToString() + "." + DateTime.Now.Month.ToString() + "." + DateTime.Now.Year.ToString() + ".doc"; //OBJECTS OF FALSE AND TRUE Object oTrue = true; Object oFalse = false; //CREATING OBJECTS OF WORD AND DOCUMENT Word.Application oWord = new Word.Application(); Word.Document oWordDoc = new Word.Document(); //MAKING THE APPLICATION VISIBLE oWord.Visible = true; //ADDING A NEW DOCUMENT TO THE APPLICATION oWordDoc = oWord.Documents.Add(ref oTemplatePath, ref oMissing, ref oMissing, ref oMissing); Word.ApplicationClass WordApp = new Word.ApplicationClass(); } catch (Exception PrEx) { ErrorBox Message = new ErrorBox("Ошибка печати документа заявки\nОткройте документ '" + NewRequestFilePath + "' и \nпопробуйте его распечатать\n" + PrEx.Message, ""); Message.Visible = true; //MessageBox.Show("Ошибка печати документа заявки\nОткройте документ '" + NewRequestFilePath + "' и \nпопробуйте его распечатать\n" + PrEx.Message, //"", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { if (DBConnection.State == ConnectionState.Open) DBConnection.Close(); }*/ // MessageBox.Show("На сегодня ничего не заказано"); /* } catch (Exception RequestEx) { ErrorBox Message = new ErrorBox("RequestEx.Message \nВозникла системная ошибка \n при составлении заявки в аптеку,\nобратитесь к администратору ", ""); Message.Visible = true; //MessageBox.Show(RequestEx.Message + "\nВозникла системная ошибка "+ //"\nпри составлении заявки в аптеку,\nобратитесь к администратору "); } finally { DBConnection.Close(); }*/ this.Cursor = Cursors.Arrow; }