QPrinter printer(QPrinter::HighResolution);
printer.setPageSize(QPrinter::A4);
printer.setOrientation(QPrinter::Portrait);
printer.setPageMargins (15,15,15,15,QPrinter::Millimeter);
printer.setFullPage(false);
printer.setOutputFormat(QPrinter::NativeFormat);
QPainter painter(&printer);
painter.setFont(QFont("Tahoma",8));
painter.drawText(200,200,"Test prova prova");
painter.end();
在带有QT的PC中,打印工作正常(打印工作正常),但在其他pc(一个win 8.1和一个win 7)无法启动(打印无法启动,打印队列为空)我不明白为什么,我没有得到任何错误。
我用:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPrinter>
#include <QPainter>
和.pro:
QT += printsupport
QTPLUGIN += windowsprintersupport
当然,文件夹中存在dll“Qt5PrintSupport
”。
对于noob问题我很抱歉,但我不明白我做错了什么。
答案 0 :(得分:1)
您需要目标计算机上的windowsprintersupport.dll插件。只有在将Qt静态链接到应用程序时,将Qt用作DLL才能设置QTPLUGIN。
答案 1 :(得分:0)
如果您使用的是 CMake 项目,您可以使用 Qt5::QWindowPrinterSupportPlugin 配置复制到目标目录。
get_target_property(_loc Qt5::QWindowsPrinterSupportPlugin LOCATION) configure_file(${_loc} Release/printsupport/windowsprintersupport.dll COPYONLY) message("copied file: ${_loc}")