source: trunk/POSTSCRIPT/ps.pro @ 2

Last change on this file since 2 was 2, checked in by opalod, 22 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 4.4 KB
Line 
1;------------------------------------------------------------
2;------------------------------------------------------------
3;------------------------------------------------------------
4;+
5; NAME:ps
6;
7; PURPOSE:redirige le contenu de la fenetre graphique ds un postcript,
8; en reeffectuant les commandes ds l''environnement postscript.
9;
10; CATEGORY:pour faire un ps
11;
12; CALLING SEQUENCE:@ps
13;
14; INPUTS:
15;
16; KEYWORD PARAMETERS:
17;;
18; OUTPUTS:
19;
20; COMMON BLOCKS:
21;
22; SIDE EFFECTS: on utilise journal qui perment de stoker les commandes
23; que l''on passe.
24;
25; RESTRICTIONS:peut planter si des commandes bizarres sont passees...
26; rq: on efface les Syntax error, les Illegal character, commapatible
27; avec oups, text_box...
28;
29; EXAMPLE:
30;
31; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
32;                       5/3/1999
33;-
34;------------------------------------------------------------
35;------------------------------------------------------------
36;------------------------------------------------------------
37;------------------------------------------------------------
38; il faut fermer le journal!
39;------------------------------------------------------------
40;   if !journal EQ 0 then begin
41;      print, 'Il n''y a pas de journal ouvert !!'
42;      GOTO, sortie
43journal
44;------------------------------------------------------------
45; on complete le journal ...
46;------------------------------------------------------------
47; on recupere le journal sous la forme d''un vecteur de string:
48vectjournal = getfile(homedir+'idlsave.pro')
49;FOR i = 0,n_elements(vectjournal)-1 DO  print, vectjournal[i]
50;------------------------------------------------------------
51; on coupe la derniere ligne qui est @ps
52;------------------------------------------------------------
53vectjournal = vectjournal[0:n_elements(vectjournal)-2 ]
54;------------------------------------------------------------
55; on le corrige si besoin est...
56;------------------------------------------------------------
57for i = 0, n_elements(vectjournal)-1 do $
58 if strpos(vectjournal[i],'text_box' ) EQ -1 then $
59 vectjournal[i] = strtrim(strcompress(vectjournal[i]), 2)
60;FOR i = 0,n_elements(vectjournal)-1 DO print, vectjournal[i]
61;2 lignes sont identiques ??
62for i = 0, n_elements(vectjournal)-2 do $
63 if vectjournal[i] EQ vectjournal[i+1] then vectjournal[i] = ' '
64;FOR i = 0,n_elements(vectjournal)-1 DO print, vectjournal[i]
65
66for i = 0, n_elements(vectjournal)-1 do BEGIN & $
67 if strpos(vectjournal[i],'oups' ) NE -1 $
68 OR strpos(vectjournal[i],'Syntax error' ) NE -1 $
69 OR strpos(vectjournal[i],'Illegal character' ) NE -1 $
70 then BEGIN vectjournal[i] = ' ' & vectjournal[i-1] = ' ' & endif & endfor
71;FOR i = 0,n_elements(vectjournal)-1 DO print, vectjournal[i]
72for i = 0, n_elements(vectjournal)-1 do BEGIN & $
73 if strpos(strtrim(vectjournal[i], 1),'retall' ) EQ 0 $
74 OR strpos(vectjournal[i],'@ps' ) NE -1 $
75 OR strpos(vectjournal[i],'@oups' ) NE -1 $
76 OR strpos(vectjournal[i],'@vzoom' ) NE -1 $
77 OR strpos(vectjournal[i],'help' ) NE -1 $
78 OR strpos(vectjournal[i],'print' ) NE -1 $
79 then  vectjournal[i] = ' ' & endfor
80;FOR i = 0,n_elements(vectjournal)-1 DO print, vectjournal[i]
81for i = 0, n_elements(vectjournal)-1 do BEGIN & $
82 if strpos(strtrim(vectjournal[i], 1),'plt' ) NE -1 THEN BEGIN & $
83 if strpos(strtrim(vectjournal[i], 1),'noerase') NE -1 then $
84 vectjournal[i] = chkeywd(vectjournal[i],'noerase',1) ELSE $
85 vectjournal[i] = vectjournal[i]+',/noerase' & $
86 ENDIF & endfor
87;FOR i = 0,n_elements(vectjournal)-1 DO print, vectjournal[i]
88for i = 0, n_elements(vectjournal)-1 do BEGIN & $
89 if strpos(vectjournal[i],'text_box' ) NE -1 then $
90 IF strpos(vectjournal[i],',pos=' ) EQ -1 then $
91 vectjournal[i] = vectjournal[i]+strmid(vectjournal[i+1], 1) & endfor
92
93; on le complete pour le transformer en une procedure equivalente a plein2dessin
94   vectjournal = ['reinitplt, /z,/invert' $
95                  ,'openps, infowidget= infowidget' $
96                  , vectjournal $
97                  ,'closeps, infowidget= infowidget' $
98                  ,'imprime' ]
99;FOR i = 0,n_elements(vectjournal)-1 DO print, vectjournal[i]
100; on reecrit idlsave.pro
101   putfile, homedir+'idlsave.pro', vectjournal
102; applique idlsave
103   cd, homedir
104@idlsave   
105; on reouvre le journal et on y met les elements de
106; vectjournal sauf les 2 premieres lignes et les 3 dernieres lignes
107journal
108for i = 2, n_elements(vectjournal)-3 DO $
109printf,  !journal, vectjournal[i]
110
111;------------------------------------------------------------
Note: See TracBrowser for help on using the repository browser.