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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2009, 16:59   #1
Haladdin
Пользователь
 
Регистрация: 07.12.2009
Сообщений: 26
По умолчанию Проблемы с печатью

Пожалуйста помогите, я уже все волосы на всех местах вырвал, но это не помогло.
В общем, проблема достаточно банальна, мне нужно распечатать документ из RichViewEdit. Вернее два документа, один - с книжной ориентацией страницы, другой - с альбомной.

сейчас код такой:
Код:
if PrintDialog1.Execute then
  begin
    if PageControl1.ActivePage.PageIndex = 0 then
      Begin

        RVPrint1.AssignSource(RichViewEdit1);
        RVPrint1.FormatPages(rvdoALL);
        RVPrint1.Print('',PrintDialog1.Copies,false);
        RVPrint1.Clear;
      end;

    if PageControl1.ActivePage.PageIndex = 1 then
      begin
        RVPrint1.AssignSource(RichViewEdit2);
        RVPrint1.FormatPages(rvdoALL);
        RVPrint1.Print('',PrintDialog1.Copies,false);
        RVPrint1.Clear;
      end;
  end;
Камнями не бейте, делайте скидку на то что я неуч. Так вот, на форме есть PageControl с двумя закладками. На одной - RichViewEdit1, на другой - RichViewEdit2. Соответственно при нажатии кнопки ПЕЧАТЬ!!! проверяется какая закладка активна, и печатается соответствующий компонент.
Проблема в том что я не знаю как сменить ориентацию листа. =( пожалуйста не посылайте в Гугль, я его уже видеть не могу.
На сайте поддержки по RichView есть пример кода:

Код:
Printer.BeginDoc; 

// printing RichView1 in portrait orientation
Printer.Orientation := poPortrait;
RVPrint.AssignSource(RichView1); 
RVPrint.FormatPages(rvdoALL); 
RVPrint.ContinuousPrint; 

// printing RichView2 in landscape orientation
Printer.NewPage;
Printer.Orientation := poLandscape;
RVPrint.AssignSource(RichView2); 
RVPrint.FormatPages(rvdoALL); 
RVPrint.ContinuousPrint; 
Printer.EndDoc;
Я его "творчески переосмыслял" раз нцать. И, что характерно, ничерта не вышло. Каждый раз пишет Project raised exception class EPrinter with message 'Printing in progress'. Process stopped.

Вот одна из последних попыток после которой у меня лапы опустились совсем.
Код:
        Printer.BeginDoc;
        Printer.Orientation := poLandscape;
        RVPrint1.AssignSource(RichViewEdit2);
        RVPrint1.FormatPages(rvdoALL);
        RVPrint1.ContinuousPrint;
        Printer.EndDoc;
Самое интересное что если закавычить команду принтер.ориентешн - все, *матное слово* работает! Все печатает только вот ориентация страницы, соответственно, стандартная портретаня. =(((

Код:
        Printer.BeginDoc;
        {Printer.Orientation := poLandscape;}
        RVPrint1.AssignSource(RichViewEdit2);
        RVPrint1.FormatPages(rvdoALL);
        RVPrint1.ContinuousPrint;
        Printer.EndDoc;
Помогите!
Haladdin вне форума Ответить с цитированием
Старый 10.12.2009, 17:27   #2
Haladdin
Пользователь
 
Регистрация: 07.12.2009
Сообщений: 26
По умолчанию

Пардон, кажется, проблема решена.
Я уж даже сказать боюс точно, дабы не сглазить =((
Haladdin вне форума Ответить с цитированием
Старый 10.12.2009, 18:43   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Каждый раз пишет Project raised exception class EPrinter with message 'Printing in progress'. Process stopped.
И правильно пишет...
Сначала устанавливаем ориентацию, а уж потом посылаем задание принтеру.
А вы наоборот делаете...
mihali4 вне форума Ответить с цитированием
Старый 10.12.2009, 19:23   #4
Haladdin
Пользователь
 
Регистрация: 07.12.2009
Сообщений: 26
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
И правильно пишет...
Сначала устанавливаем ориентацию, а уж потом посылаем задание принтеру.
А вы наоборот делаете...
Именно. А на сайте подержки написано вот это
Код:
Example 2: How to mix portrait and landscape orientations in one printing job

In this example, the same RVPrint is used to print RichView1 and RichView2 in different orientations.

Printer.BeginDoc; 
// printing RichView1 in portrait orientation
Printer.Orientation := poPortrait;
RVPrint.AssignSource(RichView1); 
RVPrint.FormatPages(rvdoALL); 
RVPrint.ContinuousPrint; 

// printing RichView2 in landscape orientation
Printer.NewPage;
Printer.Orientation := poLandscape;
RVPrint.AssignSource(RichView2); 
RVPrint.FormatPages(rvdoALL); 
RVPrint.ContinuousPrint;
Printer.EndDoc;
Haladdin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с печатью. Busine2009 Microsoft Office Word 1 26.07.2009 16:37
Проблемы с печатью на НР 1010 Snoopy Компьютерное железо 3 02.03.2009 10:00
Помогите с печатью Gash Общие вопросы Delphi 2 25.01.2009 22:26
Проблемы с печатью в VBA SIV84 Microsoft Office Excel 2 10.01.2009 11:57
проблема с печатью Арман Общие вопросы Delphi 1 15.04.2007 16:43