home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 June / CHIPHEFT062001.ISO / browser / nc32lyc / comm.z / java40.jar / sun / awt / motif / PSPaperSize.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-08-15  |  4.6 KB  |  101 lines

  1. package sun.awt.motif;
  2.  
  3. import java.awt.Dimension;
  4.  
  5. class PSPaperSize {
  6.    String paperSizeName;
  7.    Dimension paperSize;
  8.    int tolerance;
  9.    static final PSPaperSize[] standardSizeTable = new PSPaperSize[]{new PSPaperSize("A3", 842, 1191), new PSPaperSize("A4", 595, 842), new PSPaperSize("B4", 729, 1032), new PSPaperSize("ISOB4", 709, 1001), new PSPaperSize("Legal13", 612, 936), new PSPaperSize("Letter", 612, 792), new PSPaperSize("Legal", 612, 1008), new PSPaperSize("Tabloid", 792, 1224), new PSPaperSize("A4Small", 595, 842), new PSPaperSize("LetterSmall", 612, 792), new PSPaperSize("Executive", 36, 540, 720)};
  10.  
  11.    public String name() {
  12.       return this.paperSizeName;
  13.    }
  14.  
  15.    public Dimension size() {
  16.       return this.paperSize;
  17.    }
  18.  
  19.    public int width() {
  20.       return this.paperSize.width;
  21.    }
  22.  
  23.    public int height() {
  24.       return this.paperSize.height;
  25.    }
  26.  
  27.    public String toPostScriptCode(int var1, boolean var2) {
  28.       if (var1 == 2) {
  29.          return "mark {\n%%BeginFeature: ManualFeed " + var2 + "\n" + "<</ManualFeed " + var2 + ">> setpagedevice\n" + "%%EndFeature\n" + "%%BeginFeature: PageSize *" + this.paperSizeName + "\n" + "<< /PageSize [" + this.width() + " " + this.height() + "]\n" + "   /ImagingBBox null\n" + "   /Policies <</PageSize 3>>\n" + " >> setpagedevice\n" + "%%EndFeature\n" + "} stopped cleartomark";
  30.       } else {
  31.          String var3 = this.paperSizeName.toLowerCase();
  32.          if (!var2) {
  33.             var3 = var3 + "tray";
  34.          }
  35.  
  36.          return "mark {\n%%BeginFeature: ManualFeed " + var2 + "\n" + "1 dict dup /ManualFeed " + var2 + " put setpagedevice\n" + "%%EndFeature\n" + "} stopped {\n" + "%%BeginFeature: *ManualFeed " + var2 + "\n" + "  statusdict /manualfeed " + var2 + " put\n" + "%%EndFeature\n" + "} if cleartomark mark {\n" + "%%BeginFeature: PageSize *" + this.paperSizeName + "\n" + "3 dict begin\n" + "   /PageSize [" + this.width() + " " + this.height() + "] def\n" + "   /ImagingBBox null def\n" + "   /Policies 1 dict dup/PageSize 3 put def\n" + " currentdict end setpagedevice\n" + "%%EndFeature\n" + "} stopped {\n" + "  cleartomark statusdict begin mark {\n" + "%%BeginFeature: *PageSize " + this.paperSizeName + "\n" + "  " + var3 + "\n" + "%%EndFeature\n" + "  } stopped end\n" + "} if cleartomark\n" + "% now make sure we got what we requested!\n" + "gsave initgraphics clippath pathbbox grestore\n" + "5 dict begin\n" + "  3 -1 roll /yoff exch def 3 -1 roll /xoff exch def\n" + "  yoff sub /h exch def xoff sub /w exch def\n" + "  w " + (this.paperSize.width - 36) + " lt h " + (this.paperSize.height - 36) + " lt or {\n" + "    w 2 div xoff add h 2 div yoff add translate\n" + "    w xoff 2 mul add " + this.paperSize.width + " div\n" + "    h yoff 2 mul add " + this.paperSize.height + " div\n" + "    2 copy gt {exch} if pop dup scale\n" + "    " + -this.paperSize.width / 2 + " " + -this.paperSize.height / 2 + " translate\n" + "  } if\n" + "end\n";
  37.       }
  38.    }
  39.  
  40.    public String toPostScriptCode() {
  41.       return this.toPostScriptCode(1, false);
  42.    }
  43.  
  44.    public String toString() {
  45.       return "PSPaperSize[" + this.paperSizeName + ": " + this.paperSize.width + "x" + this.paperSize.height + "]";
  46.    }
  47.  
  48.    public PSPaperSize(String var1, int var2, int var3) {
  49.       this.paperSizeName = var1;
  50.       this.tolerance = 0;
  51.       this.paperSize = new Dimension(var2, var3);
  52.    }
  53.  
  54.    public PSPaperSize(String var1, int var2, int var3, int var4) {
  55.       this.paperSizeName = var1;
  56.       this.tolerance = var2;
  57.       this.paperSize = new Dimension(var3, var4);
  58.    }
  59.  
  60.    public static PSPaperSize find(String var0) {
  61.       if (var0 == null) {
  62.          return null;
  63.       } else {
  64.          for(int var1 = 0; var1 < standardSizeTable.length; ++var1) {
  65.             if (var0.equalsIgnoreCase(standardSizeTable[var1].paperSizeName)) {
  66.                return standardSizeTable[var1];
  67.             }
  68.          }
  69.  
  70.          return null;
  71.       }
  72.    }
  73.  
  74.    public static PSPaperSize find(int var0, int var1, int var2) {
  75.       int var3 = var2 + 1;
  76.       int var4 = var2 + 1;
  77.       PSPaperSize var5 = null;
  78.  
  79.       for(int var6 = 0; var6 < standardSizeTable.length; ++var6) {
  80.          PSPaperSize var7 = standardSizeTable[var6];
  81.          int var8 = Math.abs(var7.paperSize.width - var0);
  82.          int var9 = Math.abs(var7.paperSize.height - var1);
  83.          if (var8 <= var7.tolerance && var9 <= var7.tolerance) {
  84.             return var7;
  85.          }
  86.  
  87.          if (var8 <= var2 && var9 <= var2 && var8 + var9 < var3 + var4) {
  88.             var3 = var8;
  89.             var4 = var9;
  90.             var5 = var7;
  91.          }
  92.       }
  93.  
  94.       return var5;
  95.    }
  96.  
  97.    public static PSPaperSize find(int var0, int var1) {
  98.       return find(var0, var1, 0);
  99.    }
  100. }
  101.