public interface AWTPrintLifecycle
GLAutoDrawable
s.
Implementing GLAutoDrawable
classes based on AWT
supporting Component.print(Graphics)
shall implement this interface.
Users attempting to print an AWT Container
containing AWTPrintLifecycle
elements
shall consider decorating the Component.printAll(Graphics)
call with
setupPrint(..)
and releasePrint()
on all AWTPrintLifecycle
elements in the Container
.
To minimize this burden, a user can use Context.setupPrint(..)
:
Container cont; double scaleGLMatXY = 72.0/glDPI; int numSamples = 0; // leave multisampling as-is PrinterJob job; ... final AWTPrintLifecycle.Context ctx = AWTPrintLifecycle.Context.setupPrint(cont, scaleGLMatXY, scaleGLMatXY, numSamples); try { AWTEDTExecutor.singleton.invoke(true, new Runnable() { public void run() { try { job.print(); } catch (PrinterException ex) { ex.printStackTrace(); } } }); } finally { ctx.releasePrint(); }
Modifier and Type | Interface and Description |
---|---|
static class |
AWTPrintLifecycle.Context
Convenient
AWTPrintLifecycle context simplifying calling setupPrint(..)
and releasePrint() on all AWTPrintLifecycle elements of a Container . |
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_PRINT_TILE_SIZE |
Modifier and Type | Method and Description |
---|---|
void |
releasePrint()
Shall be called after
PrinterJob.print() . |
void |
setupPrint(double scaleMatX,
double scaleMatY,
int numSamples,
int tileWidth,
int tileHeight)
Shall be called before
PrinterJob.print() . |
static final int DEFAULT_PRINT_TILE_SIZE
void setupPrint(double scaleMatX, double scaleMatY, int numSamples, int tileWidth, int tileHeight)
PrinterJob.print()
.
See Usage.
scaleMatX
- Graphics2D
scaling factor
, i.e. rendering 1/scaleMatX * width pixelsscaleMatY
- Graphics2D
scaling factor
, i.e. rendering 1/scaleMatY * height pixelsnumSamples
- multisampling value: < 0 turns off, == 0 leaves as-is, > 0 enables using given num samplestileWidth
- custom tile width for tile renderer
, pass -1 for default.tileHeight
- custom tile height for tile renderer
, pass -1 for default.
FIXME: Add border size !void releasePrint()
PrinterJob.print()
.
See Usage.
Copyright 2010 JogAmp Community.