[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Newsgroup Home]
|
[news.eclipse.platform.swt] Printing content of the Composite...
|
- From: user@xxxxxxxxxxxxxx
- Date: Wed, 21 May 2003 15:34:55 +0400
- Newsgroups: eclipse.platform.swt
- Organization: EclipseCorner
- User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.3) Gecko/20030312
I try to print the content of my Composite.
I try to send to the printer Image mBuffer produced with my method,
which called during redrawing.
But printer shows nothing. what is the plausible reason?
Sergei.
PrintDialog dialog = new PrintDialog(this.getShell(), SWT.NULL);
PrinterData printerData = dialog.open();
if (printerData == null)
return;
Printer printer = new Printer(printerData);
Point screenDPI = this.getDisplay().getDPI();
Point printerDPI = printer.getDPI();
int scaleFactor = printerDPI.x / screenDPI.x;
Rectangle trim = printer.computeTrim(0, 0, 0, 0);
if (printer.startJob("Print FlowComposite")) {
if (printer.startPage()) {
GC gc = new GC(printer);
Image mBuffer = new Image(
FlowComposite.this.getDisplay(),
size.x,
size.y);
GC gc2 = new GC(mBuffer);
onPaint(gc2);
gc2.dispose();
gc.drawImage(
mBuffer,
0,
0,
mBuffer.getImageData().width,
mBuffer.getImageData().height,
-trim.x,
-trim.y,
scaleFactor * mBuffer.getImageData().width,
scaleFactor * mBuffer.getImageData().height);
gc.dispose();
printer.endPage();
}
printer.endJob();
}
printer.dispose();
} catch (SWTError e) {
e.printStackTrace();
}