Распечатайте файл.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.