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

    • Method Detail

      • 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 !