Interface AWTPrintLifecycle


public interface AWTPrintLifecycle
Interface describing print lifecycle to support AWT printing, e.g. on AWT GLAutoDrawables.
Implementations

Implementing GLAutoDrawable classes based on AWT supporting Component.print(Graphics) shall implement this interface.

Usage

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();
    }

 

  • Field Details

  • Method Details

    • setupPrint

      void setupPrint(double scaleMatX, double scaleMatY, int numSamples, int tileWidth, int tileHeight)
      Shall be called before PrinterJob.print().

      See Usage.

      Parameters:
      scaleMatX - Graphics2D scaling factor, i.e. rendering 1/scaleMatX * width pixels
      scaleMatY - Graphics2D scaling factor, i.e. rendering 1/scaleMatY * height pixels
      numSamples - multisampling value: < 0 turns off, == 0 leaves as-is, > 0 enables using given num samples
      tileWidth - 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 !
    • releasePrint

      void releasePrint()
      Shall be called after PrinterJob.print().

      See Usage.