1
我用QPrintDialog中初始化QPrinter做对象是这样的:检测PDF打印在Mac
QPrinter printer;
QPrintDialog dlg(&printer);
if (dlg.exec() == QDialog::Accepted)
{
/* Are we printing to PDF? */
}
在Windows上,它很容易,如果输出将一个文件或PDF作家检测。在Mac上,没有同样功能的工作:
if ((printer.outputFormat() == QPrinter::PdfFormat)
|| (!printer.outputFileName().isEmpty()))
{
qDebug("PDF mode");
}
在qprintdialog_mac.mm的拷贝在网上看,在功能QPrintDialogPrivate :: closeCarbonPrintPanel(),Qt的尝试检测,如果输出重定向到一个文件。它将文件名存储在QMacPrintEnginePrivate的成员中。不知何故,该名称永远不会通向QPrinter对象。我不确定断开连接的位置。
所以.....我怎么知道打印输出是否真的要去一个文件?如果容易,我愿意在这里获得具体的平台。尽管我没有Mac编程经验。
你为什么要这么做?它应该是透明的。用户应该可以随意打印他/她想要的任何内容。 –
我们可能会根据输出设备呈现不同的效果。 IE,pdf可以放大更多细节。这已被报告为QTBUG-2091。 – mjk99