Russian Qt Forum

Qt => Печать => Тема начата: noosooth от Октябрь 25, 2007, 19:50



Название: landscape печать (cups)
Отправлено: noosooth от Октябрь 25, 2007, 19:50
Qt 4.3.2, cups 1.3.2
При печати с landscape orientation получаю странные результаты.
Вот пример кода:
Код:
void MyWidget::print()
{
   QPrinter printer(QPrinter::HighResolution);
   printer.setOrientation(QPrinter::Landscape);
   QPrintDialog d(&printer, this);
   if(d.exec() == QDialog::Accepted)
      draw(&printer);
}

void MyWidget::draw(QPaintDevice* p)
{
    QPainter painter(p);
    QRect r(0,0,p->width() - 1, p->height() -1);
   
    QPen pen(QBrush(Qt::red),5);
    painter.setPen(pen);
    painter.drawRect(r);
    painter.drawLine(r.topLeft(), r.bottomRight());
    painter.drawLine(r.bottomLeft(), r.topRight());
}

Если в диалоге печати я ставлю checkbox "Print to file", to Qt делает корректный pdf.

Eсли вывожу в cups-pdf, то лист в pdf'ке сориентирован правильно, а само изображение не довернуто на 90 градусов и обрезается.

На принтере (HP LJ1200) результат зависит от драйвера.
Postscript PPD - аналогично cups-pdf (т.е. изображение не довернуто)
pxlmono и hpijs - изображение вроде бы правильно ориентировано, но отступ на пол-листа и соответственно тоже обрезается.

Короче вопрос такой: на ваш взгляд это проблемы Qt или я не умею 'готовить' cups?

Да, при portrait orientation и cups-pdf и мой LJ1200 печатают корректно.