2013-10-18 147 views
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編程經驗。

+2

你爲什麼要這麼做?它應該是透明的。用戶應該可以隨意打印他/她想要的任何內容。 –

+0

我們可能會根據輸出設備呈現不同的效果。 IE,pdf可以放大更多細節。這已被報告爲QTBUG-2091。 – mjk99

回答

0

這是Qt中的一個錯誤。

在Qt 5.3中,提供的示例代碼將工作,因爲第二個條件是QPrinter::outputFileName()的調用。