2012-11-15 124 views
0

是否可以使用SWT PrintDialog來顯示本地打印機,然後返回選定的打印機值?SWT - PrintDialog僅用於獲取本地打印機並不打印

我有一個很適合我的打印類。我將下面的變量傳遞給這個類。

字符串文件路徑 字符串PRINTERNAME 字符串的工作名

我所說的打印類從我的GUI類下面的方式。

new AplotPdfPrintLocal().printPDF("c:\\Temp\\test.pdf", "\\\\PrintServer\\MyPrinter","PDF Print Job"); 

此時該呼叫正在通過默認打印機。

在上面的調用之前,我會很高興地打開一個本地打印機對話框(如PrintDialog)。 能夠選擇本地打印機,然後用選定的打印機值調用我的打印類別。我寧願讓我的Print Class執行打印操作而不是PrintDialog。

我在想,當PrintDialog類按下OK按鈕,我們去這樣做下面的僞代碼

public void widgetSelected(SelectionEvent e) { 
    new AplotPdfPrintLocal().printPDF("c:\\Temp\\test.pdf", "SelectedPrinterValue","PDF Print Job"); 
} 

這可能嗎?
有沒有更好的方法來執行此操作?

我知道有一種方法來查找本地打印機(PrinterJob.lookupPrintServices())。 但我真的不想寫一個新的對話框,我寧願使用預先編寫的現有對話框像PrintDialog

回答

1

PrintDialog爲您提供本機打印選項。如果你不想使用PrintDialog,那麼你最終會設置所有打印選項(PrintData和其他紙張選項..你看到在PrintDialog中)。

定義帶打印選項的PrintData並創建打印機(printerdata)並開始打印作業。