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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Печать нескольких страниц, Печатает вторую поверх первой:( 
V
    Опции темы
nikakoi
Дата 6.2.2008, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Доброго времени суток.
Занимаюсь печатью и пытаюсь поддерживать печать нескольких страниц, если на одной места не хватает. Проблема заключается в том, что когда страницы две, то по какой то причине печатается вторая страница нормально, а на первую накладывается содержание второй.

Написано следующее:

Код


      printDoc.PrintPage += new PrintPageEventHandler(prnt_doc_PrintPage);

     private void prnt_doc_PrintPage(object sender, PrintEventArgs page)
    {
          controlToPrint.PrintListView(list, PrintEventArgs page)
    }

    protected bool PrintListView(ListView listToPrint, PrintPageEventArgs page)
    {
      Graphics graph = page.Graphics;

      ....
 
        for (int j = 0; j < listToPrint.Items[i].SubItems.Count; j++)
        {
          int imgWidth = 0;
          SizeF stringSize = new SizeF(100, 30);

          stringSize = graph.MeasureString(...);

          graph.DrawString(...);


          columnLength += (listToPrint.Columns[j].Width / listLength) *
                          (page.MarginBounds.Width - 2 * hard_margin_X);
        }

        maxStringHeight += stringHeight + 1;

        if (maxStringHeight > page.MarginBounds.Height - 10)
        {
          numberHolder = i;
          page.HasMorePages = true;
          return true;
        }
      }

      return false;     
    }




Что я делаю не так. Еще по какой то причине в ПринтПревью не отображаются несколько страниц вообще:(((

Хелп плз)

PM MAIL   Вверх
nikakoi
Дата 7.2.2008, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Не понятно почему, но если в строчке if (maxStringHeight > page.MarginBounds.Height - 10)
учесть HardMargins. То есть написать if (maxStringHeight > page.MarginBounds.Height - 2 * hard_margin_y). то все работает нормально. 
Всем спасибо!
PM MAIL   Вверх
nikakoi
Дата 7.2.2008, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



То что написал сверху на самом деле не помоглоsmile 
Ошибка заключалась в том, что я подписывался на event в методе... И каждый раз когда он вызывался подписывался снова... =) 

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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