最近遇到一个打印相关的问题,就是如何通过代码设定打印的相关信息,然后一键打印出来呢,不通过系统的打印设置界面(下图所示)进行设置内容,直接实现打印?
网上找到的一般的打印都如下所示,都是通过了QPrintDialog进行弹出系统打印设置,然后再进行打印,才完成打印,类似如下代码:
void printImageEx()
{
QPrinter printer;
QPrintDialog dialog(&printer, this);
dialog.setOption(QPrintDialog::PrintSelection, true);
// 设置页边距,例如设置上下左右边距均为0厘米
QMarginsF margins(0, 0, 0, 0);
QPageLayout pageLayout(QPageSize(QPageSize::A4), QPageLayout::Landscape, margins);
printer.setPageLayout(pageLayout); // 应用新的页面布局,包含边距设置
if (dialog.exec() == QDialog::Accepted) // 这里就是最烦人的弹出打印窗口
{
QPainter pain;
if (!pain.begin(&printer))
{
qDebug() << tr("选择取消打印");
QMessageBox::warning(this,