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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: как вывести инфу на принтер ?  (Прочитано 10899 раз)
pablo
Гость
« : Январь 18, 2005, 15:36 »

Скажите как исользуя Qt вывести информацию на принтер ?
Если текст у меня вводится с клавиатуры(объект QTextEdit).
Какие функции надо использовать, что к чему подключать и т.п.

Заранее благодарю
Записан
DenKor
Гость
« Ответ #1 : Январь 18, 2005, 15:41 »

Вот кусок текста из моей программы
Код:

void TabDialog::print()
{
    int ret;
printer->setPageSize(QPrinter::A4);
printer->setOrientation(QPrinter::Portrait);
printer->setFullPage( TRUE );
ret=printer->setup(this);
QString s,s1;

s=lmodif->text();
    s1=RS("Текст заявки \n\n\n");s=s1+s;


    if (ret)
{    
        QPainter p;

        if( !p.begin( printer ) )
{
            return;
        }
QPaintDeviceMetrics metrics( p.device() );
        int dpiy = metrics.logicalDpiY();
        int margin = (int) ( (2/2.54)*dpiy ); // 2 cm margins
        QRect r( margin, margin, metrics.width() - 2*margin, metrics.height() - 2*margin );


p.drawText(r,Qt::PlainText ,s);
p.end();                            
}

}
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #2 : Январь 18, 2005, 16:14 »

из опыта скажу не забывайте проверять на наличие принтера в системе Улыбающийся
Записан
Zmey
Гость
« Ответ #3 : Январь 18, 2005, 16:33 »

Читай "C++ GUI Programming with Qt 3". Глава 8, параграф Printing.
Записан
pablo
Гость
« Ответ #4 : Январь 18, 2005, 22:23 »

Окей пачитаю, обезательно. Спасибо за инфу
Записан
Anton
Гость
« Ответ #5 : Декабрь 20, 2005, 15:50 »

использую QTextEdit,
при выводе на печать все форматирование текста теряется, т.е. ни тебе жирного, ни подчеркнутого и т.д. qt334

void Form1::printButton_clicked()
{
QPrinter *printer;
 printer = new QPrinter( QPrinter::HighResolution );

   printer->setFullPage( TRUE );
    if ( printer->setup(textEdit) ) {               // printer dialog
        QPainter p;
        if( !p.begin( printer ) ) {               // paint on printer
             return;
        }

        QPaintDeviceMetrics metrics( p.device() );
        int dpiy = metrics.logicalDpiY();
        int margin = (int) ( (2/2.54)*dpiy ); // 2 cm margins
        QRect view( margin, margin, metrics.width() - 2*margin, metrics.height() - 2*margin );
        QSimpleRichText richText( QStyleSheet::convertFromPlainText(textEdit->text()),
                                  QFont(),
                                  textEdit->context(),
                                  textEdit->styleSheet(),
                                  textEdit->mimeSourceFactory(),
                                  view.height() );
        richText.setWidth( &p, view.width() );
        int page = 1;
        do {
            richText.draw( &p, margin, margin, view, colorGroup() );
            view.moveBy( 0, view.height() );
            p.translate( 0 , -view.height() );
            p.drawText( view.right() - p.fontMetrics().width( QString::number( page ) ),
                        view.bottom() + p.fontMetrics().ascent() + 5, QString::number( page ) );
            if ( view.top() - margin >= richText.height() )
                break;
            printer->newPage();
            page++;
        } while (TRUE);

    }
   
}
Записан
Alikus
Гость
« Ответ #6 : Апрель 03, 2006, 00:16 »

Цитата: "Anton"
использую QTextEdit,
при выводе на печать все форматирование текста теряется, т.е. ни тебе жирного, ни подчеркнутого и т.д. qt334


Код:
QStyleSheet::convertFromPlainText(textEdit->text()) 

А это тебе зачем? Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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