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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PrintDocument 
:(
    Опции темы
4ybaka
Дата 2.5.2007, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



проблема заключается в следующем:при печати строки,если ее длина достаточно велика,и она вся не вмещается в область печати,то она не разделяется на неск строк.подскажите алгоритм,как это можно сделать(разделить на неск строк).или может там в св-вах гдето есть?


--------------------
"То,что вы понимаете - это все,что вы понимаете."
 Брайн Керниган
PM MAIL WWW   Вверх
4ybaka
Дата 5.5.2007, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



впринципе с этим разобрался,но вот другая проблема:как вывести на печать очень длинную строчку,которая не помещается на одной странице.там есть функ для печати строки в прямоугольнике,но она не определяет - вся ли строка влезла...как это можно сделать?


--------------------
"То,что вы понимаете - это все,что вы понимаете."
 Брайн Керниган
PM MAIL WWW   Вверх
Retro
Дата 5.5.2007, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Диалектик
***


Профиль
Группа: Участник Клуба
Сообщений: 1934
Регистрация: 28.6.2005
Где: Киев

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



Советую посмотреть вотздесь.
Большинство вопрос о печати отпадают автоматически. Если там не найдется ответов то продолжим поиск. smile 
PM MAIL   Вверх
sgrey
Дата 9.5.2007, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



я с этим мучался тоже.. вот в принципе это работает....


событие принтПэйдж
Код

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {  
            try
            {
                int charactersOnPage = 0;
                int linesPerPage = 0;

                // Sets the value of charactersOnPage to the number of characters 
                // of stringToPrint that will fit within the bounds of the page.
                e.Graphics.MeasureString(PrintString.ToString(), txtPad.Font,
                    e.MarginBounds.Size, StringFormat.GenericTypographic,
                    out charactersOnPage, out linesPerPage);
                // Draws the string within the bounds of the page
                e.Graphics.DrawString(PrintString.ToString(), txtPad.Font, Brushes.Black,
                    e.MarginBounds, StringFormat.GenericTypographic);

                // Remove the portion of the string that has been printed.
                //printstring = printstring.Substring(charactersOnPage);
               PrintString.Remove(0, charactersOnPage);
                
                // Check to see if more pages are to be printed.
                e.HasMorePages = (PrintString.Length > 0);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }


событие нажатия на "пртинт"

Код

private void mnuFilePrint_Click(object sender, EventArgs e)
        {
            this.printDocument1.PrintPage += new
                    System.Drawing.Printing.PrintPageEventHandler(this.printDocument1_PrintPage);
            dlgPrint.Document = printDocument1;
            if (path != "")
            {
                printDocument1.DocumentName = Path.GetFileName(path);
            }
            else
            {
                printDocument1.DocumentName = "Document1";
            }
            dlgPrint.AllowSelection = true;
            PrintString.Append(txtPad.Text);
            
            if (dlgPrint.ShowDialog() == DialogResult.OK)
                printDocument1.Print();
            else
                return;
        }

переменные инициалируются в самом начале в классе form
Код

static string path = "";
StringBuilder PrintString = new StringBuilder();


код из моей проги, так что надо немного изменить, думаю разберёшься )

Это сообщение отредактировал(а) sgrey - 9.5.2007, 22:37
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




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


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

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