Qt 打印失败变成生成pdf QPrinterInfo::availablePrinters()获取不到打印机信息

现象:

(1)在windows的开发环境中,打印功能一切正常。把程序拷到目标机器上运行,提示缺少Qt5printsupport.dll,将此dll放到system32中后,程序可以运行,但是在预览界面点击打印按钮,直接就显示保存为pdf的对话框。
(2)QPrinterInfo::availablePrinters()方法获取不到已经安装好的打印机信息。

解决方法:

最后在下面的网页上找到了解决方法

https://forum.qt.io/topic/39319/solved-qprinterinfo-availableprinters-don-t-list-available-printers

根据网上的方法,自己的总结。
打印功能需要两个dll:windowsprintersupport.dll、Qt5printsupport.dll
(1)C:\Qt\Qt5.2.0\5.2.0\mingw48_32\plugins\printsupport\windowsprintersupport.dll(安装的是mingw48_32编译器的路径)
C:\Qt\Qt5.6.2\5.6\msvc2015\plugins\printsupport\windowsprintersupport.dll(安装的是msvc2015编译器的路径)
注意
在QT文件夹中,有两个这样的dll !

必须使用的是:C:\Qt\Qt5.2.0\5.2.0\mingw48_32\plugins\printsupport\windowsprintersupport.dll(大约是41k)。
必须使用以下路径中的windowsprintersupport.dll(大约16k): C:\Qt\Qt5.2.0\Tools\QtCreator\bin\plugins\printsupport\windowsprintersupport.dll,因为它与QtCreator相关。

(2)Qt5printsupport.dll

一、如VS2015+Qt5.6.2中,部署好Qt5printsupport打印的插件库。
1、在c/c+±>常规->附加包含目录添加: $(QTDIR)\include\QtPrintSupport
2、在链接器->输入->附加依赖项中添加:Qt5PrintSupport.lib(release模式下)
3、将C:\Qt\Qt5.6.2\5.6\msvc2015\plugins\printsupport文件拷贝到程序路径。(该路径与电脑中安装的Qt版本以及编译器有关)

发布了14 篇原创文章 · 获赞 5 · 访问量 6025

猜你喜欢

转载自blog.csdn.net/weixin_43277501/article/details/104024488