Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2010, 22:30   #1
TaTT DoGG
Форумчанин
 
Аватар для TaTT DoGG
 
Регистрация: 25.04.2008
Сообщений: 476
По умолчанию печать документа разными шрифтами

у меня печатается документ, но весь одним шрифтом. мне нужно заголовки чуть больше делать.
я делаю так:
Код:
private void PrintEv_Click(object sender, EventArgs e)
        {
            reporttext = "Заголовок" + Environment.NewLine + "гы";
            myReader = new StringReader(reporttext);
            if (printDialog1.ShowDialog() == DialogResult.OK)
                printDocument1.Print(); 
        }

private void printDocument1_PrintPage(object sender, PrintPageEventArgs ev)
        {
            float linesPerPage = 0;
            float yPosition = 0;
            int count = 0;
            float leftMargin = ev.MarginBounds.Left;
            float topMargin = ev.MarginBounds.Top;
            string line = null;
            Font printFont = new Font("Tahoma",12,FontStyle.Regular);
            SolidBrush myBrush = new SolidBrush(Color.Black);
            linesPerPage = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics);
            while (count < linesPerPage && ((line = myReader.ReadLine()) != null))
            {            
                yPosition = topMargin + (count * printFont.GetHeight(ev.Graphics));
                ev.Graphics.DrawString(line, printFont, myBrush, leftMargin, yPosition, new StringFormat());
                count++;
            }
            if (line != null)
                ev.HasMorePages = true;
            else
                ev.HasMorePages = false;
            myBrush.Dispose();
        }
как я понял, нужно добавлять в существующий документ новый текст. т.е. сначала добавить заголовок размером 14, а потом остальной текст размером 12.
но как это сделать я не знаю. подскажите плз
Life if about choices
Make the right choice
TaTT DoGG вне форума Ответить с цитированием
Старый 09.04.2010, 23:45   #2
TaTT DoGG
Форумчанин
 
Аватар для TaTT DoGG
 
Регистрация: 25.04.2008
Сообщений: 476
По умолчанию

а ещё почему-то весть текст печатается в одну строку (т.е. выходит за пределы страницы)

помогите плз подфиксить
Life if about choices
Make the right choice
TaTT DoGG вне форума Ответить с цитированием
Старый 10.04.2010, 09:56   #3
TaTT DoGG
Форумчанин
 
Аватар для TaTT DoGG
 
Регистрация: 25.04.2008
Сообщений: 476
По умолчанию

вожусь второй день.

вот мой цикл. в нём написано что нужно выводить.
Код:
for (int x = 0; x < i.Count; x++)
            {
                //тут выводим i[x] 14 размером шрифта
                for (int y = 0; y < ii.Count; y++)
                {
                    //тут выводим ii[y] 12 размером шрифта
                }
            }
не получается определять с какой позиции рисовать следующую строку и не получается разбирать по страницам
Life if about choices
Make the right choice
TaTT DoGG вне форума Ответить с цитированием
Старый 12.04.2010, 20:21   #4
TaTT DoGG
Форумчанин
 
Аватар для TaTT DoGG
 
Регистрация: 25.04.2008
Сообщений: 476
По умолчанию

up
ещё актуально
Life if about choices
Make the right choice
TaTT DoGG вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Печать документа DennerV Общие вопросы Delphi 1 01.06.2009 13:23
Печать документа с таблицами и форматированием. snake-as Общие вопросы Delphi 2 16.05.2009 14:50
Печать документа в Memo vladchyzh Общие вопросы Delphi 1 29.12.2008 15:01
Печать документа из формы Aleksandr Microsoft Office Excel 5 28.04.2008 08:27
Print_Book - Печать в документа виде книги Noor Microsoft Office Word 2 14.11.2007 09:26