0

ダイアログがあります。ダイアログ内には、ユーザーアクションの結果を表示するテーブルビューアがあります。印刷ボタンを持つメソッドを作成しました。印刷コードのインクルードは、例から見つけたサンプル コードです。

final Text t = new Text(composite, SWT.BORDER | SWT.MULTI);
   Button localPrintersButton = new Button(composite, SWT.PUSH);
   localPrintersButton.setText("Print Results");
   localPrintersButton.addSelectionListener(new SelectionAdapter() {
       public void widgetSelected(SelectionEvent e) {
          PrintDialog printDialog = new PrintDialog(Display.getCurrent().getActiveShell(), SWT.NONE);
          printDialog.setText("Print");
          PrinterData printerData = printDialog.open( );
          if(!(printerData==null))
          {
              Printer p = new Printer(printerData);
              p.startJob("PrintJob");    
              p.startPage( );
              Rectangle trim = p.computeTrim(0, 0, 0, 0);
              Point dpi = p.getDPI( );
              int leftMargin = dpi.x + trim.x; 
              int topMargin = dpi.y / 2 + trim.y; 
              GC gc = new GC(p);
              Font font = gc.getFont( ); 
              String printText= t.getText( );
              Point extent = gc.stringExtent(printText);
              gc.drawString(printText, leftMargin, topMargin + 
                      font.getFontData( )[0].getHeight( ));
              p.endPage( );
              gc.dispose( );
              p.endJob( );
              p.dispose( );
          }
       }
   }); 

ダイアログが開くと、印刷ボタンの横にテキスト ボックスがあります。テキスト ボックスに何かを入力し、印刷ボタンを選択してローカル プリンターを選択すると、テキスト ボックスの内容が印刷されます。

テキストボックスの代わりにテーブルを印刷する方法を見つけようとしています これは可能ですか?

4

2 に答える 2

1

私はあなたが探していると思います

Control.class
public boolean print (GC gc)
于 2012-11-01T15:57:44.467 に答える
0

おそらくGCTableウィジェットからGC#copyArea(Image, int, int)を作成し、印刷するテーブルのイメージを作成するために使用できます。

テーブルにスクロール バーがあり、すべてのデータが表示されていない場合は、複数の画像を作成してそれらをつなぎ合わせるために、追加の作業が必要になる場合があります。お役に立てれば。

于 2012-11-01T16:07:40.083 に答える