0

カスタム SWT PrintDialog を作成したいと思います。しかし、それは不可能のようです。

SWT PrintDialog では、「設定」をクリックして、ネイティブのプリンター ドライバーの設定ダイアログを開くことができます。org.eclipse.swt.printing.PrintDialog を使用せずに「ネイティブ プリンター ドライバーの設定ダイアログ」を開き、ドライバーの設定 (PrinterData) を読み取ることは可能ですか?

4

1 に答える 1

1

PrintDialog非常にプラットフォーム固有です。たとえば、Mac バージョンには環境設定オプションがありません。このクラスには、特定のプラットフォームに接続するドキュメント化されていない低レベル コードが多数含まれています。独自のクラスで低レベル コードを使用することは可能ですが、これはサポートされておらず、プラットフォーム API の経験が必要です。

open違いを説明するために、 Windows でのメソッドの最初の数行を次に示します。

public PrinterData open() {
    /* Get the owner HWND for the dialog */
    Control parent = getParent();
    int style = getStyle();
    long /*int*/ hwndOwner = parent.handle;
    long /*int*/ hwndParent = parent.handle;

および Mac OS X コード:

public PrinterData open() {
    PrinterData data = null;
    NSPrintPanel panel = NSPrintPanel.printPanel();
    NSPrintInfo printInfo = new NSPrintInfo(NSPrintInfo.sharedPrintInfo().copy());
    if (printerData.duplex != SWT.DEFAULT) {
        long /*int*/ settings = printInfo.PMPrintSettings();

および Linux:

public PrinterData open() {
    if (OS.GTK_VERSION < OS.VERSION (2, 10, 0)) {
        return Printer.getDefaultPrinterData();
    } else {
       byte [] titleBytes = Converter.wcsToMbcs (null, getText(), true);
       long /*int*/ topHandle = getParent().handle;
        while (topHandle != 0 && !OS.GTK_IS_WINDOW(topHandle)) {
            topHandle = OS.gtk_widget_get_parent(topHandle);
        }
于 2014-03-27T08:23:46.590 に答える