2012-11-15 79 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)并开始打印作业。