Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблемы с печатью, прблемы при печати текста 
:(
    Опции темы
Bezonik
Дата 25.10.2009, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 8.1.2009

Репутация: нет
Всего: нет



Здравствуйте, мне необходима помощ при решении одного вопроса

Имеется на форме текстовый компонент RichTextBox, далее обозначен именем TipDiscTextBox, в нем содержится информация, которую необходимо вывести на печать.

Печать документа происходит, но ВНИМАНИЕ!!!! печатается на стандартном листе бумаге толко первая строчка, и толко та часть которая помещается на листке, остальная часть не печатается!!!!!таким образом
, при печате не происходит перехода на печать новой строки.....



привожу фрагмент кода

Код

private void toolStripButton3_Click(object sender, EventArgs e) // кнопка для записи печати документа
        {
            if (printDialog1.ShowDialog() == DialogResult.OK)
            {
                printDocument1.Print();
            }
        }


        private void OnBeginPrint(object sender, System.Drawing.Printing.PrintEventArgs e) 
        {
            char[] param = { '\n' };
            if (printDialog1.PrinterSettings.PrintRange == PrintRange.Selection)
            {
                output = TipDiscTextBox.SelectedText.Split(param);
            }
            else
            {
                output = TipDiscTextBox.Text.Split(param);
            }
            int i = 0;
            char[] trimParam = { '\r' };
            foreach (string s in output)
            {
                output[i++] = s.TrimEnd(trimParam);
            }
        }


        private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            int linesPrinted = 0;
            int x = e.MarginBounds.Left;
            int y = e.MarginBounds.Top;
            int nachSim = 0;
         
            Brush brush = new SolidBrush(TipDiscTextBox.ForeColor);
          
            while (linesPrinted < output.Length)
            {
                int dlinaStr = output[linesPrinted].Length + 1;
                TipDiscTextBox.Select(nachSim, dlinaStr);
                nachSim += dlinaStr;
               
                e.Graphics.DrawString(output[linesPrinted], TipDiscTextBox.Font, brush, x, y);
                y += 15;
                if (y >= e.MarginBounds.Bottom)
                {
                    e.HasMorePages = true;
                }
                else
                {
                    e.HasMorePages = false;
                }
                linesPrinted++;
            }
        }


если кто сталкивался с такой проблемой, или знает ее решение, прозьба помочь!!! Спасибо!!!!
PM MAIL   Вверх
albert21
Дата 5.11.2010, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 10.1.2006

Репутация: нет
Всего: нет



Перенос слов происходит если задать ограничивающую прямоугольную область при формировании текстовой строки вывода

Код

printDoc.PrintPage += new PrintPageEventHandler(printDoc_PrintPagePrecedent); 

private void printDoc_PrintPagePrecedent(Object sender, PrintPageEventArgs e)
{
     Font printFontTitle = new Font("Courier New", 14, FontStyle.Bold);            
     e.Graphics.DrawString("Очень длинная строка очень длинная строка очень длинная строка", printFontTitle, Brushes.Black, new RectangleF(50, 50,200,200), new StringFormat());
}

--------------------
http://www.certifications.ru/publicresults.php?tu_id=45939
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1848 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.