如何解决打印对打印机来说太大
我正在使用 QPrinter 在小部件中传递一些信息并将其打印在我的打印机上,我想要它的大小,但是它不在乎我是否在对话框中设置了大小,它只是打印太大了,就像是一个 11x14 英寸的页面,所有内容都超出了边界。
我的代码如下,它工作正常,并设法打印我需要的东西,首先我声明一个paintEvent来处理我的小部件上的“绘画”并且它完美地工作
void cuadro::paintEvent(QPaintEvent *event){
QPainter p(this);
pintarCarta(p);
}
我还声明了一个名为 pintarCarta(QPainter &painter)
的函数,它拥有我需要的一切(稍后我将传递一个向量(QString))
void cuadro::pintarCarta(QPainter &painter){
QPen pen; // Dinamicos
QPen pen2; // Estaticos declara la qpen para los ajustes de lineas
// painter.begin(&printer); // inicializa el dispositivo para impresion,terminar con painter.end
Qpixmap Imagen;
pen2.setColor(Qt::green); // color de linea
pen2.setWidth(2); // ancho de linea
// const QRect rectangle = QRect(0,850,1000); // rectangulo general donde va todo
QRect boundingRect;
Imagen.load("Imagenes/logo.png");
//painter.setBackgroundMode(Qt::TransparentMode);
painter.drawpixmap(QRect(0,80,60),Imagen,QRect(0,70,40));
QFont font = painter.font();
font.setPixelSize(28); // usar una variable
painter.setFont(font);
painter.drawText(QRect(318,200,520,300),tr("EnTrada de Almacen"),&boundingRect); //
...
...
...
}
然后当我看到一切正常时,我只需将它传递给 Qprinter 对话框,一切看起来都很好,它会打印出来。但它对于一封信来说太大了,知道它可能是什么吗?我对这个有点迷茫,文档也没有多大帮助。
void cuadro::Imprimir(){
QPrinter *printer;
QPrintDialog dialog(this);
printer = dialog.printer();
printer->setFullPage(true);
printer->setPaperSize(QPrinter::Letter); // cant set the correct paper size,prints in 11x14in format
dialog.setwindowTitle("Impresion de Documento");
if (dialog.exec() == QDialog::Rejected)
return;
QPainter e(printer);
pintarCarta(e);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。