Russian Qt Forum
Ноябрь 22, 2024, 17:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с печатью текста на принтере  (Прочитано 6592 раз)
korel
Гость
« : Март 26, 2010, 17:31 »

Собственно написал вывод текста на внешнее устройство - принтер! Но может я чего не понимаю в самом принципе... Буду благодарен за ответ!
Код ниже:
Код:
void MainWindow::Print()
{
        QPrinter *printer = new QPrinter(QPrinter::HighResolution);
        QPainter painter;
 
            printer->setOrientation(QPrinter::Landscape);
            printer->setNumCopies(1);//copies number
            printer->setColorMode(QPrinter::GrayScale);
            printer->setPageSize(QPrinter::A4);

           QPrintDialog printDialog(printer, this);
           QString text = "blah 1111";
           printDialog.setWindowTitle("Print Document");
           if(printDialog.exec() == QDialog::Accepted)
           {
              painter.begin(printer);
              painter.drawText(10, 30, text);            
              painter.end();
           }
}
« Последнее редактирование: Март 27, 2010, 09:15 от korel » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Март 26, 2010, 17:35 »

1. Пользуйся тегом code.
2. В чем проблема?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
korel
Гость
« Ответ #2 : Март 26, 2010, 17:48 »

1. Пользуйся тегом code.
2. В чем проблема?

проблема в том , что этот код не печатает строку text - принтер просто выдает пустую страницу!
не знаю, что в коде нужно поправить чтобы хоть это напечатало!
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Март 26, 2010, 17:51 »

А если попробовать из QTextEdit распечатать?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
korel
Гость
« Ответ #4 : Март 26, 2010, 17:55 »

А если попробовать из QTextEdit распечатать?

пока не пробовал, попробую - напишу что получилось! Но это все равно не выход! Хотел просто разобраться с проблемой!
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #5 : Март 26, 2010, 18:27 »

1. Пользуйся тегом code.
2. В чем проблема?

проблема в том , что этот код не печатает строку text - принтер просто выдает пустую страницу!
не знаю, что в коде нужно поправить чтобы хоть это напечатало!
У тебя в
painter.drawText(10, 30, text);
слишком "высокая точка". У принтера есть слепая зона в которой он просто не печатает.
Посмотри размер QPrinter::pageRect() и печатай в этой зоне..
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
korel
Гость
« Ответ #6 : Март 27, 2010, 09:20 »

1. Пользуйся тегом code.
2. В чем проблема?

проблема в том , что этот код не печатает строку text - принтер просто выдает пустую страницу!
не знаю, что в коде нужно поправить чтобы хоть это напечатало!
У тебя в
painter.drawText(10, 30, text);
слишком "высокая точка". У принтера есть слепая зона в которой он просто не печатает.
Посмотри размер QPrinter::pageRect() и печатай в этой зоне..

Теперь все работает, спасибо большое за совет!
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #7 : Март 27, 2010, 12:34 »

Да пожалуйста.
Претензии по форуму в соотвествующий раздел
« Последнее редактирование: Март 27, 2010, 14:11 от Пантер » Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.057 секунд. Запросов: 22.