Class PSGr


  • public class PSGr
    extends Graphics
    PSGr is a awt.Graphics subclass that images to PostScript. (C) 1996 E.J. Friedman-Hill and Sandia National Labs
    Version:
    1.0
    Author:
    Ernest Friedman-Hill, ejfried@ca.sandia.gov, http://herzberg.ca.sandia.gov IMPORTANT! Changes for Java 1.1 by Morris Hirsch mhirsch@ipdinc.com All thanks to Ernest Friedman-Hill. Any complaints or bugs to Morris Hirsch.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
        PSGr​(OutputStream o)
      Constructs a new PSGr Object.
      protected PSGr​(OutputStream o, int what)  
        PSGr​(OutputStream o, int marginX, int marginY, int width, int height, boolean portrait)
      Constructor for non-default page dimensions and orientation.
    • Method Summary

      All Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      void clearRect​(int x, int y, int width, int height)
      Clears the specified rectangle by filling it with the current background color of the current drawing surface.
      void clipRect​(int x, int y, int width, int height)
      Clips to a rectangle.
      void copyArea​(int x, int y, int width, int height, int dx, int dy)
      Copies an area of the screen.
      Graphics create()
      Container.paint calls create and dispose, for a separate g to clip and position each child and then restore larger clip and original coordinates by disposing of the smaller g and using the original g.
      Graphics create​(int x, int y, int width, int height)
      Creates a new PSGr Object with the specified parameters, based on the original PSGr Object.
      void dispose()
      Disposes of this Graphics context, which cannot be used after being disposed of.
      protected boolean doImage​(Image img, int x, int y, int width, int height, ImageObserver observer, Color bgcolor)  
      protected void doRect​(int x, int y, int width, int height, boolean fill)  
      void draw3DRect​(int x, int y, int width, int height, boolean raised)
      Draws a highlighted 3-D rectangle.
      void drawArc​(int x, int y, int width, int height, int startAngle, int arcAngle)
      Draws an arc bounded by the specified rectangle from startAngle to endAngle.
      void drawBytes​(byte[] data, int offset, int length, int x, int y)
      Draws the specified bytes using the current font and color.
      void drawChars​(char[] data, int offset, int length, int x, int y)
      Draws the specified characters using the current font and color.
      boolean drawImage​(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer)
      Scaling and translating versions not supported -- BUT COULD BE
      boolean drawImage​(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
      Scaling and translating versions not supported -- BUT WE COULD
      boolean drawImage​(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer)
      Draws the specified image inside the specified rectangle.
      boolean drawImage​(Image img, int x, int y, int width, int height, ImageObserver observer)
      Draws the specified image inside the specified rectangle.
      boolean drawImage​(Image img, int x, int y, Color bgcolor, ImageObserver observer)
      Draws the specified image at the specified top left (x, y), with width and height determined by the image.
      boolean drawImage​(Image img, int x, int y, ImageObserver observer)
      Draws the specified image at the specified top left (x, y), with width and height determined by the image.
      void drawLine​(int x1, int y1, int x2, int y2)
      Draws a line between the coordinates (x1,y1) and (x2,y2).
      void drawOval​(int x, int y, int width, int height)
      Draws an oval inside the specified rectangle using the current color.
      void drawPolygon​(int[] xPoints, int[] yPoints, int nPoints)
      Draws a polygon defined by an array of x points and y points.
      void drawPolygon​(Polygon p)
      Draws a polygon defined by the specified point.
      void drawPolyline​(int[] x, int[] y, int np)
      Polyline MGH added to satisfy 1.1 API
      void drawRect​(int x, int y, int width, int height)
      Draws the outline of the specified rectangle using the current color.
      void drawRoundRect​(int x, int y, int width, int height, int arcWidth, int arcHeight)
      Draws an outlined rounded corner rectangle using the current color.
      void drawString​(String str, int x, int y)  
      void drawString​(AttributedCharacterIterator iterator, int x, int y)
      Draws the specified String using the current font and color.
      protected int dTrans​(int d)  
      protected void emitProlog()
      Top of every PS file needs this.
      void emitThis​(String s)  
      void emitThisNext​(String s)  
      void fill3DRect​(int x, int y, int width, int height, boolean raised)
      Paints a highlighted 3-D rectangle using the current color.
      void fillArc​(int x, int y, int width, int height, int startAngle, int arcAngle)
      Fills an arc using the current color.
      void fillOval​(int x, int y, int width, int height)
      Fills an oval inside the specified rectangle using the current color.
      void fillPolygon​(int[] xPoints, int[] yPoints, int nPoints)
      Fills a polygon with the current color.
      void fillPolygon​(Polygon p)
      Fills the specified polygon with the current color.
      void fillRect​(int x, int y, int width, int height)
      Fills the specified rectangle with the current color.
      void fillRoundRect​(int x, int y, int width, int height, int arcWidth, int arcHeight)
      Draws a rounded rectangle filled in with the current color.
      void finalize()
      Disposes of this graphics context once it is no longer referenced.
      Shape getClip()
      MGH added Shape getClip () per 1.1 API.
      Rectangle getClipBounds()  
      Rectangle getClipRect()
      Deprecated.
      in 1.1
      Color getColor()
      Gets the current color.
      Font getFont()
      Gets the current font.
      FontMetrics getFontMetrics()
      PSGr does not implement getFontMetrics(*)
      FontMetrics getFontMetrics​(Font f)
      "Warning: PSGr does not implement getFontMetrics(*)
      int getPageHeight()  
      int getPageMarginX()
      Printing dimensions default or set at construct time.
      int getPageMarginY()  
      int getPageWidth()  
      protected void grestore()  
      protected void gsave()
      Save and restore the PostScript state, SHOULD ALSO any Java mirror state
      protected void myBasicPaint​(Component comp, boolean edge)  
      protected String myHexString​(int n)  
      protected void scale​(float sx, float sy)
      Scales the graphics context.
      void scalePaint​(Component top)
      Find scale factor that will fit the page, use smaller of x and y for both, to convert all pixels to points.
      protected void setBackground​(Color c)
      Gets the current color.
      void setClip​(int x, int y, int width, int height)
      MGH added setClip (x y w h) per 1.1 API, this is supposed to be **NEW** Clip, rather than intersection with existing Clip, but that may not be correct yet..
      void setClip​(Shape s)
      MGH added setClip (Shape s) hacked over Rectangle.
      void setColor​(Color c)
      Sets the current color to the specified color.
      void setFont​(Font f)
      Sets the font for all subsequent text-drawing operations.
      void setPaintMode()
      Sets the default paint mode to overwrite the destination with the current color.
      void setXORMode​(Color c1)
      Sets the paint mode to alternate between the current color and the new specified color.
      void showpage()
      Needed unless the file is intended as part of a larger one.
      protected String strunc​(double d)  
      String toString()
      Returns a String object representing this Graphic's value.
      void translate​(int x, int y)
      Translates the origin of the graphics context to the specified parameters.
      protected int xTrans​(int x)  
      protected int yTrans​(int y)  
    • Field Detail

      • Page_MarginX

        protected int Page_MarginX
      • Page_MarginY

        protected int Page_MarginY
      • Page_Height

        protected int Page_Height
      • Page_Width

        protected int Page_Width
      • Page_Portrait

        protected boolean Page_Portrait
      • clr

        protected Color clr
      • backClr

        protected Color backClr
      • font

        protected Font font
      • clippingRect

        protected Rectangle clippingRect
      • disposed

        protected boolean disposed
    • Constructor Detail

      • PSGr

        public PSGr​(OutputStream o)
        Constructs a new PSGr Object. Unlike regular Graphics objects, PSGr contexts can be created directly.
        Parameters:
        o - Output stream for PostScript output
        See Also:
        create()
      • PSGr

        protected PSGr​(OutputStream o,
                       int what)
        Parameters:
        o - o
        what - what
      • PSGr

        public PSGr​(OutputStream o,
                    int marginX,
                    int marginY,
                    int width,
                    int height,
                    boolean portrait)
        Constructor for non-default page dimensions and orientation.
        Parameters:
        o - Output stream for PostScript output
        marginX - Page_MarginX (left side) in points.
        marginY - Page_MarginY (bottom side) in points.
        width - Page_Width in points.
        height - Page_Height in points.
        portrait - Portrait if true, otherwise landscape.
    • Method Detail

      • create

        public Graphics create()
        Container.paint calls create and dispose, for a separate g to clip and position each child and then restore larger clip and original coordinates by disposing of the smaller g and using the original g. We have our own Container painting code, which works the same way. This simulates the context stack in PostScript, and works fine as long as each g is used as described, that is by using only the most recently created g.
        Specified by:
        create in class Graphics
        Returns:
        something
      • create

        public Graphics create​(int x,
                               int y,
                               int width,
                               int height)
        Creates a new PSGr Object with the specified parameters, based on the original PSGr Object. This method translates the origin to the specified x and y, and then clips to the area with specified width and height. The resulting clipping area is the intersection of the current clipping area and the specified rectangle. We first "gsave" the PostScript context here, and we "grestore" it when dispose () is called, so if create () and dispose () are used in pairs, the earlier and larger clip should be preserved, and what the old g thinks is the clip should be so. NOT TESTED YET! Compiler won't let this one be PSGr only Graphics I think because it is part of the interface spec.
        Overrides:
        create in class Graphics
        Parameters:
        x - the x coordinate, pixels positive right from left.
        y - the y coordinate, pixels positive down from top.
        width - the width of the area
        height - the height of the area
        Returns:
        something
        See Also:
        translate(int, int)
      • getPageMarginX

        public int getPageMarginX()
        Printing dimensions default or set at construct time. These are methods of the PSGr extension of Graphics.
        Returns:
        something
      • getPageMarginY

        public int getPageMarginY()
        Returns:
        something
      • getPageHeight

        public int getPageHeight()
        Returns:
        something
      • getPageWidth

        public int getPageWidth()
        Returns:
        something
      • translate

        public void translate​(int x,
                              int y)
        Translates the origin of the graphics context to the specified parameters. All subsequent operations on this graphics context will be relative to this origin.
        Specified by:
        translate in class Graphics
        Parameters:
        x - the x coordinate, pixels positive right from left.
        y - the y coordinate, pixels positive down from top. Note: PostScript y coordinate is positive up from bottom. Note: PostScript default units are points (1/72 inch).
        See Also:
        scale(float, float)
      • setBackground

        protected void setBackground​(Color c)
        Gets the current color. This is NOT part of the Graphics API.
        Parameters:
        c - c
        See Also:
        setColor(java.awt.Color)
      • setColor

        public void setColor​(Color c)
        Sets the current color to the specified color. All subsequent graphics operations will use this specified color.
        Specified by:
        setColor in class Graphics
        Parameters:
        c - the color to be set
        See Also:
        Color, getColor()
      • strunc

        protected String strunc​(double d)
        Parameters:
        d - d
        Returns:
        something
      • setPaintMode

        public void setPaintMode()
        Sets the default paint mode to overwrite the destination with the current color. PostScript has only paint mode.
        Specified by:
        setPaintMode in class Graphics
      • setXORMode

        public void setXORMode​(Color c1)
        Sets the paint mode to alternate between the current color and the new specified color. PostScript does not support XOR mode.
        Specified by:
        setXORMode in class Graphics
        Parameters:
        c1 - the second color
      • getClip

        public Shape getClip()
        MGH added Shape getClip () per 1.1 API. Rectangle implements Shape.
        Specified by:
        getClip in class Graphics
        Returns:
        something
      • setClip

        public void setClip​(Shape s)
        MGH added setClip (Shape s) hacked over Rectangle. Really nothing to do for Shape as yet...
        Specified by:
        setClip in class Graphics
        Parameters:
        s - s
      • setClip

        public void setClip​(int x,
                            int y,
                            int width,
                            int height)
        MGH added setClip (x y w h) per 1.1 API, this is supposed to be **NEW** Clip, rather than intersection with existing Clip, but that may not be correct yet.. Easy to make the new clippingRect, but that is only the Java book keeping version. The actual PostScript clip is the intersection, unless we use initclip to reset it, which I could do... But my PostScript book says to "almost never" do initclip. Instead we should grestore but WHEN WAS THE GSAVE? Use grestoreall, it pops all gsaves until the one that was done to start us, uses that one and leaves it on the stack, so it can be done again and again. NOT TESTED YET!
        Specified by:
        setClip in class Graphics
      • clipRect

        public void clipRect​(int x,
                             int y,
                             int width,
                             int height)
        Clips to a rectangle. The resulting clipping area is the intersection of the current clipping area and the specified rectangle. Graphic operations have no effect outside of the clipping area. MGH made clippingRect = clippingRect.intersection, MGH commented out // emitThis ("initclip"); MGH added the starting emitThis ("newpath");
        Specified by:
        clipRect in class Graphics
        Parameters:
        x - the x coordinate
        y - the y coordinate
        width - the width of the rectangle
        height - the height of the rectangle
        See Also:
        getClipRect()
      • copyArea

        public void copyArea​(int x,
                             int y,
                             int width,
                             int height,
                             int dx,
                             int dy)
        Copies an area of the screen.
        Specified by:
        copyArea in class Graphics
        Parameters:
        x - the x-coordinate of the source
        y - the y-coordinate of the source
        width - the width
        height - the height
        dx - the horizontal distance
        dy - the vertical distance Note: copyArea not supported by PostScript
      • drawLine

        public void drawLine​(int x1,
                             int y1,
                             int x2,
                             int y2)
        Draws a line between the coordinates (x1,y1) and (x2,y2). The line is drawn below and to the left of the logical coordinates.
        Specified by:
        drawLine in class Graphics
        Parameters:
        x1 - the first point's x coordinate
        y1 - the first point's y coordinate
        x2 - the second point's x coordinate
        y2 - the second point's y coordinate
      • drawPolyline

        public void drawPolyline​(int[] x,
                                 int[] y,
                                 int np)
        Polyline MGH added to satisfy 1.1 API
        Specified by:
        drawPolyline in class Graphics
        Parameters:
        x - x
        y - y
        np - np
      • doRect

        protected void doRect​(int x,
                              int y,
                              int width,
                              int height,
                              boolean fill)
        Parameters:
        x - x
        y - y
        width - width
        height - height
        fill - fill
      • fillRect

        public void fillRect​(int x,
                             int y,
                             int width,
                             int height)
        Fills the specified rectangle with the current color.
        Specified by:
        fillRect in class Graphics
        Parameters:
        x - the x coordinate
        y - the y coordinate
        width - the width of the rectangle
        height - the height of the rectangle
        See Also:
        drawRect(int, int, int, int), clearRect(int, int, int, int)
      • drawRect

        public void drawRect​(int x,
                             int y,
                             int width,
                             int height)
        Draws the outline of the specified rectangle using the current color. Use drawRect (x, y, width-1, height-1) to draw the outline inside the specified rectangle.
        Overrides:
        drawRect in class Graphics
        Parameters:
        x - the x coordinate
        y - the y coordinate
        width - the width of the rectangle
        height - the height of the rectangle
        See Also:
        fillRect(int, int, int, int), clearRect(int, int, int, int)
      • clearRect

        public void clearRect​(int x,
                              int y,
                              int width,
                              int height)
        Clears the specified rectangle by filling it with the current background color of the current drawing surface. Which drawing surface it selects depends on how the graphics context was created.
        Specified by:
        clearRect in class Graphics
        Parameters:
        x - the x coordinate
        y - the y coordinate
        width - the width of the rectangle
        height - the height of the rectangle
        See Also:
        fillRect(int, int, int, int), drawRect(int, int, int, int)
      • drawRoundRect

        public void drawRoundRect​(int x,
                                  int y,
                                  int width,
                                  int height,
                                  int arcWidth,
                                  int arcHeight)
        Draws an outlined rounded corner rectangle using the current color.
        Specified by:
        drawRoundRect in class Graphics
        Parameters:
        x - the x coordinate
        y - the y coordinate
        width - the width of the rectangle
        height - the height of the rectangle
        arcWidth - the diameter of the arc
        arcHeight - the radius of the arc
        See Also:
        fillRoundRect(int, int, int, int, int, int)
      • fillRoundRect

        public void fillRoundRect​(int x,
                                  int y,
                                  int width,
                                  int height,
                                  int arcWidth,
                                  int arcHeight)
        Draws a rounded rectangle filled in with the current color.
        Specified by:
        fillRoundRect in class Graphics
        Parameters:
        x - the x coordinate
        y - the y coordinate
        width - the width of the rectangle
        height - the height of the rectangle
        arcWidth - the diameter of the arc
        arcHeight - the radius of the arc
        See Also:
        drawRoundRect(int, int, int, int, int, int)
      • draw3DRect

        public void draw3DRect​(int x,
                               int y,
                               int width,
                               int height,
                               boolean raised)
        Draws a highlighted 3-D rectangle. Two edges brighter and two darker.
        Overrides:
        draw3DRect in class Graphics
        Parameters:
        x - the x coordinate
        y - the y coordinate
        width - the width of the rectangle
        height - the height of the rectangle
        raised - a boolean that states whether the rectangle is raised or not
      • fill3DRect

        public void fill3DRect​(int x,
                               int y,
                               int width,
                               int height,
                               boolean raised)
        Paints a highlighted 3-D rectangle using the current color. Two edges brighter and two darker.
        Overrides:
        fill3DRect in class Graphics
        Parameters:
        x - the x coordinate
        y - the y coordinate
        width - the width of the rectangle
        height - the height of the rectangle
        raised - a boolean that states whether the rectangle is raised or not
      • drawOval

        public void drawOval​(int x,
                             int y,
                             int width,
                             int height)
        Draws an oval inside the specified rectangle using the current color.
        Specified by:
        drawOval in class Graphics
        Parameters:
        x - the x coordinate
        y - the y coordinate
        width - the width of the rectangle
        height - the height of the rectangle
        See Also:
        fillOval(int, int, int, int)
      • fillOval

        public void fillOval​(int x,
                             int y,
                             int width,
                             int height)
        Fills an oval inside the specified rectangle using the current color.
        Specified by:
        fillOval in class Graphics
        Parameters:
        x - the x coordinate
        y - the y coordinate
        width - the width of the rectangle
        height - the height of the rectangle
        See Also:
        drawOval(int, int, int, int)
      • drawArc

        public void drawArc​(int x,
                            int y,
                            int width,
                            int height,
                            int startAngle,
                            int arcAngle)
        Draws an arc bounded by the specified rectangle from startAngle to endAngle. 0 degrees is at the 3-o'clock position.Positive arc angles indicate counter-clockwise rotations, negative arc angles are drawn clockwise.
        Specified by:
        drawArc in class Graphics
        Parameters:
        x - the x coordinate
        y - the y coordinate
        width - the width of the rectangle
        height - the height of the rectangle
        startAngle - the beginning angle
        arcAngle - the angle of the arc (relative to startAngle).
        See Also:
        fillArc(int, int, int, int, int, int)
      • fillArc

        public void fillArc​(int x,
                            int y,
                            int width,
                            int height,
                            int startAngle,
                            int arcAngle)
        Fills an arc using the current color. This generates a pie shape.
        Specified by:
        fillArc in class Graphics
        Parameters:
        x - the x coordinate
        y - the y coordinate
        width - the width of the arc
        height - the height of the arc
        startAngle - the beginning angle
        arcAngle - the angle of the arc (relative to startAngle).
        See Also:
        drawArc(int, int, int, int, int, int)
      • drawPolygon

        public void drawPolygon​(int[] xPoints,
                                int[] yPoints,
                                int nPoints)
        Draws a polygon defined by an array of x points and y points.
        Specified by:
        drawPolygon in class Graphics
        Parameters:
        xPoints - an array of x points
        yPoints - an array of y points
        nPoints - the total number of points
        See Also:
        fillPolygon(int[], int[], int)
      • fillPolygon

        public void fillPolygon​(int[] xPoints,
                                int[] yPoints,
                                int nPoints)
        Fills a polygon with the current color.
        Specified by:
        fillPolygon in class Graphics
        Parameters:
        xPoints - an array of x points
        yPoints - an array of y points
        nPoints - the total number of points
        See Also:
        drawPolygon(int[], int[], int)
      • myHexString

        protected String myHexString​(int n)
        Parameters:
        n - n
        Returns:
        something
      • doImage

        protected boolean doImage​(Image img,
                                  int x,
                                  int y,
                                  int width,
                                  int height,
                                  ImageObserver observer,
                                  Color bgcolor)
        Parameters:
        img - img
        x - x
        y - y
        width - width
        height - height
        observer - observer
        bgcolor - bgcolor
        Returns:
        something
      • drawImage

        public boolean drawImage​(Image img,
                                 int x,
                                 int y,
                                 ImageObserver observer)
        Draws the specified image at the specified top left (x, y), with width and height determined by the image. If the image is incomplete return false. The image observer will be notified later.
        Specified by:
        drawImage in class Graphics
        Parameters:
        img - the specified image to be drawn
        x - the x coordinate
        y - the y coordinate
        observer - notifies if the image is complete or not
        Returns:
        something
        See Also:
        Image, ImageObserver
      • drawImage

        public boolean drawImage​(Image img,
                                 int x,
                                 int y,
                                 int width,
                                 int height,
                                 ImageObserver observer)
        Draws the specified image inside the specified rectangle. The image is scaled if necessary. If the image is incomplete return false. The image observer will be notified later.
        Specified by:
        drawImage in class Graphics
        Parameters:
        img - the specified image to be drawn
        x - the x coordinate
        y - the y coordinate
        width - the width of the rectangle
        height - the height of the rectangle
        observer - notifies if the image is complete or not
        Returns:
        something
        See Also:
        Image, ImageObserver
      • drawImage

        public boolean drawImage​(Image img,
                                 int x,
                                 int y,
                                 Color bgcolor,
                                 ImageObserver observer)
        Draws the specified image at the specified top left (x, y), with width and height determined by the image. If the image is incomplete return false. The image observer will be notified later.
        Specified by:
        drawImage in class Graphics
        Parameters:
        img - the specified image to be drawn
        x - the x coordinate
        y - the y coordinate
        bgcolor - the background color
        observer - notifies if the image is complete or not
        Returns:
        something
        See Also:
        Image, ImageObserver
      • drawImage

        public boolean drawImage​(Image img,
                                 int x,
                                 int y,
                                 int width,
                                 int height,
                                 Color bgcolor,
                                 ImageObserver observer)
        Draws the specified image inside the specified rectangle. The image is scaled if necessary. If the image is incomplete the image observer will be notified later.
        Specified by:
        drawImage in class Graphics
        Parameters:
        img - the specified image to be drawn
        x - the x coordinate
        y - the y coordinate
        width - the width of the rectangle
        height - the height of the rectangle
        bgcolor - the background color
        observer - notifies if the image is complete or not
        Returns:
        something
        See Also:
        Image, NOTE: PSGr ignores the background color.
      • drawImage

        public boolean drawImage​(Image img,
                                 int dx1,
                                 int dy1,
                                 int dx2,
                                 int dy2,
                                 int sx1,
                                 int sy1,
                                 int sx2,
                                 int sy2,
                                 Color bgcolor,
                                 ImageObserver observer)
        Scaling and translating versions not supported -- BUT COULD BE
        Specified by:
        drawImage in class Graphics
        Parameters:
        img - - the specified image to be drawn
        dx1 - - the x coordinate of the first corner of the destination rectangle.
        dy1 - - the y coordinate of the first corner of the destination rectangle.
        dx2 - - the x coordinate of the second corner of the destination rectangle.
        dy2 - - the y coordinate of the second corner of the destination rectangle.
        sx1 - - the x coordinate of the first corner of the source rectangle.
        sy1 - - the y coordinate of the first corner of the source rectangle.
        sx2 - - the x coordinate of the second corner of the source rectangle.
        sy2 - - the y coordinate of the second corner of the source rectangle.
        bgcolor - the background color
        observer - - object to be notified as more of the image is scaled and converted NOTE: PSGr ignores the background color.
        Returns:
        something
        See Also:
        Image, ImageObserver
      • drawImage

        public boolean drawImage​(Image img,
                                 int dx1,
                                 int dy1,
                                 int dx2,
                                 int dy2,
                                 int sx1,
                                 int sy1,
                                 int sx2,
                                 int sy2,
                                 ImageObserver observer)
        Scaling and translating versions not supported -- BUT WE COULD
        Specified by:
        drawImage in class Graphics
        Parameters:
        img - - the specified image to be drawn
        dx1 - - the x coordinate of the first corner of the destination rectangle.
        dy1 - - the y coordinate of the first corner of the destination rectangle.
        dx2 - - the x coordinate of the second corner of the destination rectangle.
        dy2 - - the y coordinate of the second corner of the destination rectangle.
        sx1 - - the x coordinate of the first corner of the source rectangle.
        sy1 - - the y coordinate of the first corner of the source rectangle.
        sx2 - - the x coordinate of the second corner of the source rectangle.
        sy2 - - the y coordinate of the second corner of the source rectangle.
        observer - - object to be notified as more of the image is scaled and converted
        Returns:
        something
        See Also:
        Image, ImageObserver
      • dispose

        public void dispose()
        Disposes of this Graphics context, which cannot be used after being disposed of.
        Specified by:
        dispose in class Graphics
        See Also:
        finalize()
      • showpage

        public void showpage()
        Needed unless the file is intended as part of a larger one. As best I understand the conventions, we are expected to say showpage, but any "wrapped" code may disable it, and scale this as part of a larger page. The grestore and gsave seem to be needed, otherwise all but first page came out blank, I don't see why that should be.
      • finalize

        public void finalize()
        Disposes of this graphics context once it is no longer referenced.
        Overrides:
        finalize in class Graphics
        See Also:
        dispose()
      • toString

        public String toString()
        Returns a String object representing this Graphic's value.
        Overrides:
        toString in class Graphics
        Returns:
        something
      • yTrans

        protected int yTrans​(int y)
        Parameters:
        y - y
        Returns:
        something
      • xTrans

        protected int xTrans​(int x)
        Parameters:
        x - x
        Returns:
        something
      • dTrans

        protected int dTrans​(int d)
        Parameters:
        d - d
        Returns:
        something
      • emitProlog

        protected void emitProlog()
        Top of every PS file needs this. It must be the first thing in the file. The first line is a "magic number" to invoke PostScript. There are other standard %% comments that could be added.
      • gsave

        protected void gsave()
        Save and restore the PostScript state, SHOULD ALSO any Java mirror state
      • grestore

        protected void grestore()
      • emitThisNext

        public void emitThisNext​(String s)
        Parameters:
        s - s
      • emitThis

        public void emitThis​(String s)
        Parameters:
        s - s
      • myBasicPaint

        protected void myBasicPaint​(Component comp,
                                    boolean edge)
        Parameters:
        comp - comp
        edge - edge
      • scalePaint

        public void scalePaint​(Component top)
        Find scale factor that will fit the page, use smaller of x and y for both, to convert all pixels to points. Only reduce scale if needed -- do not ever magnify. PostScript scale operator also changes text sizes. Must allow for non-printing margins all around.
        Parameters:
        top - top