Russian Qt Forum

Qt => Печать => Тема начата: korel от Март 26, 2010, 17:31



Название: Проблема с печатью текста на принтере
Отправлено: 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();
           }
}


Название: Re: Проблема с печатью текста на принтере
Отправлено: Пантер от Март 26, 2010, 17:35
1. Пользуйся тегом code.
2. В чем проблема?


Название: Re: Проблема с печатью текста на принтере
Отправлено: korel от Март 26, 2010, 17:48
1. Пользуйся тегом code.
2. В чем проблема?

проблема в том , что этот код не печатает строку text - принтер просто выдает пустую страницу!
не знаю, что в коде нужно поправить чтобы хоть это напечатало!


Название: Re: Проблема с печатью текста на принтере
Отправлено: Пантер от Март 26, 2010, 17:51
А если попробовать из QTextEdit распечатать?


Название: Re: Проблема с печатью текста на принтере
Отправлено: korel от Март 26, 2010, 17:55
А если попробовать из QTextEdit распечатать?

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


Название: Re: Проблема с печатью текста на принтере
Отправлено: panAlexey от Март 26, 2010, 18:27
1. Пользуйся тегом code.
2. В чем проблема?

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


Название: Re: Проблема с печатью текста на принтере
Отправлено: korel от Март 27, 2010, 09:20
1. Пользуйся тегом code.
2. В чем проблема?

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

Теперь все работает, спасибо большое за совет!


Название: Re: Проблема с печатью текста на принтере
Отправлено: panAlexey от Март 27, 2010, 12:34
Да пожалуйста.
Претензии по форуму в соотвествующий раздел