home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 20 / AACD20.BIN / AACD / Graphics / PerfectPaint / rexx / general / LoadPS.rx < prev    next >
Text File  |  2001-01-11  |  3KB  |  179 lines

  1. /* Load PS Picture
  2.    using GhostScript
  3.  
  4.     From Aminet:
  5.  
  6. You need these:
  7.   gfx/show     GS510-data.lha 326K  73 GS5.10 Data-init-config files
  8.   gfx/show GS510-stdfonts.lha 1.5M  73 GS5.10 fonts-std files
  9.   text/dtp   GS510FontMap.lha   5K  62 GS5.10's missing fontmap file
  10.  
  11. One of the following, depending on your processor:
  12.   gfx/show      GS510_020.lha 537K  73 GS5.10-4-020-030-EC040-Amigas
  13.   gfx/show   GS510_020fpu.lha 518K  73 GS5.10-4-020fpu-030fpu-Amigas
  14.   gfx/show   GS510_040fpu.lha 520K  73 GS5.10-4-040fpu-Amigas
  15.  
  16. Optional - but probably worth getting:
  17.   text/dtp  GS510-Install.lha  15K  32 GS5.10-Installation-Routine (V1.02)
  18.   gfx/show GS510-fontsoth.lha 798K  73 GS5.10 fonts-other files
  19.  
  20. */
  21.  
  22.     options results
  23.     parse ARG Port b
  24.  
  25.     ADDRESS value Port
  26.     pp_showscreen
  27.  
  28.     pp_GetDepth
  29.     n=result
  30.     if n~=24 then DO
  31.         pp_Warn 'Only*for*24bits*version.'
  32.         EXIT        
  33.     END
  34.  
  35.  
  36.     ADDRESS COMMAND
  37.     if ~EXISTS('ghostscript:gs') THEN DO
  38.         ADDRESS value Port
  39.         pp_closeasay
  40.         pp_Warn 'Please|Install*Ghostscript*first.'
  41.         EXIT
  42.     END
  43.  
  44.     file=''
  45.     path='Ghostscript:gs'
  46.     width=320
  47.     height=256
  48.  
  49.     if EXISTS('PerfectPaint:Prefs/Rexx_Prefs/LoadPS') THEN DO
  50.         IF OPEN('lfile','PerfectPaint:Prefs/Rexx_Prefs/LoadPS', "R") then DO
  51.             file = READLN('lfile')
  52.             path = READLN('lfile')
  53.             width = READLN('lfile')
  54.             height = READLN('lfile')
  55.             CALL CLOSE('lfile')
  56.             file2=""
  57.             do i=1 to LENGTH(file)
  58.                 a=SUBSTR(file,i,1)
  59.                 if a=" " then DO
  60.                     a="*"
  61.                 END
  62.                 file2=file2||a
  63.             END
  64.             file=file2
  65.         END
  66.     END
  67.  
  68.     IF width=0|height=0|path='' then DO
  69.         path='Ghostscript:gs'
  70.         width=320
  71.         height=256
  72.     END
  73.  
  74.     ADDRESS value Port    
  75.     pp_DialogInit 250 123 "*Load*Postscript" 5
  76.  
  77.         pp_String 0 50 8 150 16 "Path" 1 100 path
  78.         pp_String 1 50 30 150 16 "Name" 1 100 file
  79.  
  80.         n=LASTPOS('/',file)
  81.         if n=0 then DO
  82.             n=LASTPOS(':',file)
  83.             file=SUBSTR(file,1,n)
  84.         END
  85.         else DO            
  86.             file=SUBSTR(file,1,n)
  87.         END
  88.             
  89.         pp_Getfile 2 205 31 1 "Load*PS" 0 file
  90.  
  91.         pp_integer 3 50 52 70 16 "Width" 1 width
  92.         pp_integer 4 50 70 70 16 "Height" 1 height
  93.     pp_Dialog    
  94.  
  95.     rc=result
  96.     if rc=0 then
  97.         do
  98.             EXIT
  99.         end    
  100.  
  101.     pp_GetDialog 1
  102.     file=result
  103.  
  104.     pp_GetDialog 0
  105.     path=result
  106.     
  107.     pp_GetDialog 3
  108.     width=result
  109.  
  110.     pp_GetDialog 4
  111.     height=result
  112.  
  113.     if file="" then
  114.         do
  115.             EXIT
  116.         end
  117.  
  118.     CALL SavePrefs('LoadPS',file,path,width,height)
  119.     ADDRESS value Port
  120.  
  121.     pp_asay 'Loading*PS*file|Please*wait*...'
  122.  
  123.     storescript='ram:Ghostscript.script'
  124.  
  125.     Xdpi=(72*width)/612
  126.     Ydpi=(72*height)/792
  127.  
  128.     if Xdpi>Ydpi then DO
  129.         Xdpi=trunc(Ydpi,0)
  130.         Ydpi=Xdpi
  131.     END
  132.     ELSE DO
  133.         Ydpi=trunc(Xdpi,0)
  134.         Xdpi=Ydpi
  135.     END
  136.  
  137.     IF OPEN('pfile',storescript,'W') THEN DO
  138.         CALL WRITELN('pfile','stack 150000')
  139.         Line=path||' >con:120/20/400/200/GhostScript/SCREEN'||Port
  140.         Line=Line||' -r'||Xdpi||' -g'||width||'x'||height||' -dNOPAUSE -dBATCH  -sDEVICE=ppmraw -sOutputFile=ram:temp.ppm '
  141.         Line=Line||'"'||file||'"'||' -c'
  142.         CALL WRITELN('pfile',Line)
  143.         CALL CLOSE('pfile')    
  144.     END
  145.         
  146.     ADDRESS COMMAND 'execute ram:Ghostscript.script'
  147.  
  148.     ADDRESS value Port
  149.     pp_closeasay
  150.     pp_load 'ram:temp.ppm'
  151.  
  152.     ADDRESS COMMAND
  153.     'delete >nil: ram:temp.ppm'
  154.   'delete >nil: ram:Ghostscript.script'
  155.     EXIT
  156.     
  157.  
  158.  
  159. SavePrefs: PROCEDURE
  160.     
  161.     Prefname='PerfectPaint:Prefs/Rexx_Prefs/'||ARG(1)
  162.  
  163.     if EXISTS(Prefname) THEN DO
  164.         ADDRESS COMMAND
  165.         'delete >nil: '||Prefname
  166.     END
  167.  
  168.     IF OPEN('pfile',PrefName,'W') THEN DO
  169.  
  170.     do i=2 to ARG()
  171.         CALL WRITELN('pfile',ARG(i))
  172.     end
  173.  
  174.     CALL CLOSE('pfile')
  175.  
  176. RETURN
  177.  
  178.  
  179.