    FOREIGN MODULE java_awt_print;

    IMPORT
        java_lang,
        java_util,
        java_awt_geom,
        java_awt,
        java_io,
        java_security;

    TYPE

      Book* = POINTER TO EXTENSIBLE RECORD (java_lang.Object + Pageable)
              STATIC
                PROCEDURE Init*() : Book,CONSTRUCTOR;
              END;

      Pageable* = POINTER TO INTERFACE RECORD (java_lang.Object)
                  STATIC
                    UNKNOWN_NUMBER_OF_PAGES* = -1;
                  END;

      PageFormat* = POINTER TO EXTENSIBLE RECORD (java_lang.Object + java_lang.Cloneable)
                    STATIC
                      LANDSCAPE* = 0;
                      PORTRAIT* = 1;
                      REVERSE_LANDSCAPE* = 2;
                      PROCEDURE Init*() : PageFormat,CONSTRUCTOR;
                    END;

      Paper* = POINTER TO EXTENSIBLE RECORD (java_lang.Object + java_lang.Cloneable)
               STATIC
                 PROCEDURE Init*() : Paper,CONSTRUCTOR;
               END;

      Printable* = POINTER TO INTERFACE RECORD (java_lang.Object)
                   STATIC
                     PAGE_EXISTS* = 0;
                     NO_SUCH_PAGE* = 1;
                   END;

      PrinterAbortException* = POINTER TO EXTENSIBLE RECORD (PrinterException)
                               STATIC
                                 PROCEDURE Init*() : PrinterAbortException,CONSTRUCTOR;
                                 PROCEDURE Init*(p0 : java_lang.String) : PrinterAbortException,CONSTRUCTOR;
                               END;

      PrinterException* = POINTER TO EXTENSIBLE RECORD (java_lang.Exception)
                          STATIC
                            PROCEDURE Init*() : PrinterException,CONSTRUCTOR;
                            PROCEDURE Init*(p0 : java_lang.String) : PrinterException,CONSTRUCTOR;
                          END;

      PrinterGraphics* = POINTER TO INTERFACE RECORD (java_lang.Object)
                         END;

      PrinterIOException* = POINTER TO EXTENSIBLE RECORD (PrinterException)
                            STATIC
                              PROCEDURE Init*(p0 : java_io.IOException) : PrinterIOException,CONSTRUCTOR;
                            END;

      PrinterJob* = POINTER TO ABSTRACT RECORD (java_lang.Object)
                    STATIC
                      PROCEDURE Init*() : PrinterJob,CONSTRUCTOR;
                      PROCEDURE getPrinterJob*() : PrinterJob;
                    END;

    PROCEDURE (self:Book) append*(p0 : Printable;
                                  p1 : PageFormat),NEW,EXTENSIBLE;

    PROCEDURE (self:Book) append*(p0 : Printable;
                                  p1 : PageFormat;
                                  p2 : INTEGER),NEW,EXTENSIBLE;

    PROCEDURE (self:Book) getNumberOfPages*() : INTEGER,NEW,EXTENSIBLE;

    PROCEDURE (self:Book) getPageFormat*(p0 : INTEGER) : PageFormat,NEW,EXTENSIBLE;

    PROCEDURE (self:Book) getPrintable*(p0 : INTEGER) : Printable,NEW,EXTENSIBLE;

    PROCEDURE (self:Book) setPage*(p0 : INTEGER;
                                   p1 : Printable;
                                   p2 : PageFormat),NEW,EXTENSIBLE;

    PROCEDURE (self:Pageable) getNumberOfPages*() : INTEGER,NEW,ABSTRACT;

    PROCEDURE (self:Pageable) getPageFormat*(p0 : INTEGER) : PageFormat,NEW,ABSTRACT;

    PROCEDURE (self:Pageable) getPrintable*(p0 : INTEGER) : Printable,NEW,ABSTRACT;

    PROCEDURE (self:PageFormat) clone*() : java_lang.Object,EXTENSIBLE;

    PROCEDURE (self:PageFormat) getHeight*() : REAL,NEW,EXTENSIBLE;

    PROCEDURE (self:PageFormat) getImageableHeight*() : REAL,NEW,EXTENSIBLE;

    PROCEDURE (self:PageFormat) getImageableWidth*() : REAL,NEW,EXTENSIBLE;

    PROCEDURE (self:PageFormat) getImageableX*() : REAL,NEW,EXTENSIBLE;

    PROCEDURE (self:PageFormat) getImageableY*() : REAL,NEW,EXTENSIBLE;

    PROCEDURE (self:PageFormat) getMatrix*() : POINTER TO ARRAY OF REAL,NEW,EXTENSIBLE;

    PROCEDURE (self:PageFormat) getOrientation*() : INTEGER,NEW,EXTENSIBLE;

    PROCEDURE (self:PageFormat) getPaper*() : Paper,NEW,EXTENSIBLE;

    PROCEDURE (self:PageFormat) getWidth*() : REAL,NEW,EXTENSIBLE;

    PROCEDURE (self:PageFormat) setOrientation*(p0 : INTEGER),NEW,EXTENSIBLE;

    PROCEDURE (self:PageFormat) setPaper*(p0 : Paper),NEW,EXTENSIBLE;

    PROCEDURE (self:Paper) clone*() : java_lang.Object,EXTENSIBLE;

    PROCEDURE (self:Paper) getHeight*() : REAL,NEW,EXTENSIBLE;

    PROCEDURE (self:Paper) getImageableHeight*() : REAL,NEW,EXTENSIBLE;

    PROCEDURE (self:Paper) getImageableWidth*() : REAL,NEW,EXTENSIBLE;

    PROCEDURE (self:Paper) getImageableX*() : REAL,NEW,EXTENSIBLE;

    PROCEDURE (self:Paper) getImageableY*() : REAL,NEW,EXTENSIBLE;

    PROCEDURE (self:Paper) getWidth*() : REAL,NEW,EXTENSIBLE;

    PROCEDURE (self:Paper) setImageableArea*(p0 : REAL;
                                             p1 : REAL;
                                             p2 : REAL;
                                             p3 : REAL),NEW,EXTENSIBLE;

    PROCEDURE (self:Paper) setSize*(p0 : REAL;
                                    p1 : REAL),NEW,EXTENSIBLE;

    PROCEDURE (self:Printable) print*(p0 : java_awt.Graphics;
                                      p1 : PageFormat;
                                      p2 : INTEGER) : INTEGER,NEW,ABSTRACT;

    PROCEDURE (self:PrinterGraphics) getPrinterJob*() : PrinterJob,NEW,ABSTRACT;

    PROCEDURE (self:PrinterIOException) getIOException*() : java_io.IOException,NEW,EXTENSIBLE;

    PROCEDURE (self:PrinterJob) cancel*(),NEW,ABSTRACT;

    PROCEDURE (self:PrinterJob) defaultPage*() : PageFormat,NEW,EXTENSIBLE;

    PROCEDURE (self:PrinterJob) defaultPage*(p0 : PageFormat) : PageFormat,NEW,ABSTRACT;

    PROCEDURE (self:PrinterJob) getCopies*() : INTEGER,NEW,ABSTRACT;

    PROCEDURE (self:PrinterJob) getJobName*() : java_lang.String,NEW,ABSTRACT;

    PROCEDURE (self:PrinterJob) getUserName*() : java_lang.String,NEW,ABSTRACT;

    PROCEDURE (self:PrinterJob) isCancelled*() : BOOLEAN,NEW,ABSTRACT;

    PROCEDURE (self:PrinterJob) pageDialog*(p0 : PageFormat) : PageFormat,NEW,ABSTRACT;

    PROCEDURE (self:PrinterJob) print*(),NEW,ABSTRACT;

    PROCEDURE (self:PrinterJob) printDialog*() : BOOLEAN,NEW,ABSTRACT;

    PROCEDURE (self:PrinterJob) setCopies*(p0 : INTEGER),NEW,ABSTRACT;

    PROCEDURE (self:PrinterJob) setJobName*(p0 : java_lang.String),NEW,ABSTRACT;

    PROCEDURE (self:PrinterJob) setPageable*(p0 : Pageable),NEW,ABSTRACT;

    PROCEDURE (self:PrinterJob) setPrintable*(p0 : Printable),NEW,ABSTRACT;

    PROCEDURE (self:PrinterJob) setPrintable*(p0 : Printable;
                                              p1 : PageFormat),NEW,ABSTRACT;

    PROCEDURE (self:PrinterJob) validatePage*(p0 : PageFormat) : PageFormat,NEW,ABSTRACT;

    END java_awt_print.