QT 打印文件

版权声明:欢迎大佬们指点 https://blog.csdn.net/bloke_come/article/details/82805416

1、文本打印
QPrintDialog标准对话框提供打印机的选择、配置功能,并允许改变文档有关设置,如页面范围、打印份数等。

QPrinter printer;				               // 新建一个QPrinter对象
QPrintDialog printDialog(&printer,this);
if(printDialog.exec())                                         // 判断是否点击打印按钮
{
	//获得QTextEdit对象的文档
	QTextDocument *doc =showWidget->text->document();
	doc->print(&printer);                                 // 打印
}

2、图像打印
在一个QPaintDevice中画图,都是创建一个QPainter对象进行画图,只是打印使用的是QPrinter,QPrinter本质上也是一个绘图设备QPaintDevice。

QPrinter printer;                                            // 新建一个QPrinter对象
QPrintDialog printDialog(&printer,this);
if(printDialog.exec())
{
	QPainter painter(&printer);                         // 创建一个QPainter对象,并指定绘图设备为一个QPainter对象
 	QRect rect =painter.viewport();                     // 获得QPainter对象的视图矩形区域
 	QSize size = img.size();                            // 获得图像的大小
 	/* 按照图形的比例大小重新设置视图矩形区域 */
 	size.scale(rect.size(),Qt::KeepAspectRatio);
 	painter.setViewport(rect.x(),rect.y(),size.width(),size.height());
 	painter.setWindow(img.rect());                      // 设置QPainter窗口大小为图像的大小
 	painter.drawImage(0,0,img);                         // 打印图像
}

猜你喜欢

转载自blog.csdn.net/bloke_come/article/details/82805416