Грубо говоря нужно набить блок PrintDocument результатом работы программы. Понимаю что нужно использовать Graphics.DrawString, для объекта типа PaintEventArgs, но я не смог найти понятной для моего ума вразумительной информации по содержанию данного блока (и да я был на msdn, и да я не смог понять даже от туда документацию). Кто работал с этим функционалом, подскажите, а еще лучше покажите как что и откуда
с помощью
PrintDocument pd = new PrintDocument();
pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);
вызываем метод pd_PrintPage, параметрами которого являются (object из которого произошёл вызов и PrintPageEventArgs ev - если я верно понял, это макет страницы, откуда берётся не знаю и по сути был вопрос как раз таки в пояснении его)
после этого выводим на печать с помощью pd.Print();
в методе достаточно ev.Graphics.DrawString с 5ю параметрами ( я использовал эту перегрузку, потому что не хотел мудрить со структурой)
подробнее про:
ev.Graphics.DrawString(line, font, Brushes, x, y);
Параметр line - это то что будет в выводе на печать, приколы типо @"
line example 1
line example 2
line example 3
"
будут преобразованы к 1 строке, так что если хотите несколько строк, то скорее всего потребуется цикл
Параметр font - это стиль для начертания текста, так я использовал Font("Arial", 16) можно выбрать под ваш вкус любой
Параметр Brushes - это параметр цвета текста
Параметр x - отступ с лева от края документа
Параметр y - отступ с верха от края документа.
Параметры x и y при многострочном выводе так же придётся менять в цикле, но нужно учесть, что на одну страницу не влезет более чем ev.MarginBounds.Height (высота макета страницы)/printFont.GetHeight(высота одной строки) так что при преодалении данного параметра, следует сделать новую страницу.
Ну а что в MSDN не понятно?
Вам нужно нарисовать строку на документе, используя ev.Graphics.DrawString. Координаты, где будет нарисована строка вычисляются вами самостоятельно.