Как напечатать больше страниц в C# (printdocument)
Итак, вот в чем дело. Я хочу напечатать текст на большем количестве страниц, текст, который будет вставлен Пользователем в текстовое поле (шутка, чтобы иметь изображение).. Я приведу вам простой пример того, что я пытаюсь сделать:
одним нажатием кнопки я хочу вызвать диалоговое окно предварительного просмотра печати (вот как):
private void button2_Click(object sender, EventArgs e) { printPreviewDialog1.Document = printDocument1; printPreviewDialog1.ShowDialog(); }
После этого в printdocument я делаю вот что: (не настоящий код, шутка небольшой пример)
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { Font myFont = new Font("m_svoboda", 14, FontStyle.Underline, GraphicsUnit.Point); int y = e.MarginBounds.Top; for (int i=0; i<70; i++) { e.Graphics.DrawString("TEST", myFont, Brushes.Black, new PointF(e.MarginBounds.Left, y)); y += 35; } }
Так вот, вот так он не напишет все 70 строк, поэтому ему нужно открыть новую страницу.. Но как это сделать?. У меня есть попытка С "Е".HasMorePages", но безрезультатно. Поэтому, пожалуйста, если кто-то знает, как решить эту проблему, дайте мне знать..
(решение этого простого примера очень и очень помогло бы мне!)..
РЕДАКТИРОВАТЬ:
Спасибо за ответ. Но я все еще не могу решить эту проблему.. Я уже видел это, но для меня это немного сложно (не упомянул, что я новичок)
Например, в этом проекте я не знаю, что такое/do "StreamReader streamToPrint", поэтому он меня в шутку смущает..
Вот что я попробовал (то, что я думал, что это будет правильно):
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e) { Font myFont = new Font("m_svoboda", 14, FontStyle.Underline, GraphicsUnit.Point); int y = e.MarginBounds.Top; for (int i = 0; i < 70; i++) { if (y >= e.MarginBounds.Bottom) { e.HasMorePages = true; y = e.MarginBounds.Top; } else { e.HasMorePages = false; e.Graphics.DrawString("TEST", myFont, Brushes.Black, new PointF(e.MarginBounds.Left, y)); y += 25; } } }
Но это не работает..
Теперь, если бы вы (кто-нибудь) могли написать мне код, в котором 70 строк теста слова были бы написаны, одна под другой, на нескольких страницах по мере необходимости ... или любое количество слов, мне бы очень хотелось, чтобы компилятор знал, сколько новых страниц должно открыться, и написал нужный текст на нужной странице..
Я надеюсь, что вы могли понять меня, что я хочу знать, и что вы будете мне помочь..
Спасибо Вам вперед..
Последнее редактирование: теперь это здорово. Спасибо, Ник..