问题描述
我正在使用 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 (将#修改为@)