Распечатайте файл.rtf или.txt с помощью кнопки PRINT?

Я делаю простую тестовую программу. Я хочу иметь возможность щелкнуть элемент меню на панели menutool (Печать) и распечатать документ на моем принтере. Следующий код - это то, что я использую, но я не уверен, что это все, что мне нужно для простой печати. Я новичок в С# и, следовательно, не полностью знаком с классом printDocument.

private void printToolStripMenuItem_Click(object sender, EventArgs e)
 {


 try 
 {
 StreamReader streamToPrint = new StreamReader
 ("C:\\My Documents\\MyFile.txt");
 try 
 {
 Font printFont = new Font("Arial", 10);
 PrintDocument pd = new PrintDocument();
 pd.PrintPage += new PrintPageEventHandler(myFileName);
 pd.Print();
 } 
 finally 
 {
 streamToPrint.Close();
 }
 } 
 catch(Exception ex) 
 {
 MessageBox.Show(ex.Message);
 }
1 ответ

Проблема. Вы неправильно обрабатываете PrintPagEvent.

Решение. Чтобы распечатать документ, необходимый для правильной обработки PrintPageEvent, написав обработчик PrintPageEvent.

String content=""; 
 Font printFont = new Font("Arial", 10);
 private void printToolStripMenuItem_Click(object sender, EventArgs e)
 {
 try 
 {
 content= File.ReadAllText("C:\\My Documents\\MyFile.txt");
 PrintDocument pd = new PrintDocument();
 pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
 pd.Print();
 } 
 catch(Exception ex) 
 {
 MessageBox.Show(ex.Message);
 } 
 }
 private void pd_PrintPage(object sender, PrintPageEventArgs ev)
 {
 ev.Graphics.DrawString(content,printFont , Brushes.Black,
 ev.MarginBounds.Left, 0, new StringFormat());
 }

licensed under cc by-sa 3.0 with attribution.