1 | TMGPRNTR ;TMG/kst/Printer API Fns ;03/25/06
|
---|
2 | ;;1.0;TMG-LIB;**1**;04/25/04
|
---|
3 |
|
---|
4 | ;"TMG PRINTER API FUNCTIONS
|
---|
5 | ;"Kevin Toppenberg MD
|
---|
6 | ;"GNU General Public License (GPL) applies
|
---|
7 |
|
---|
8 | ;"=======================================================================
|
---|
9 | ;" API -- Public Functions.
|
---|
10 | ;"=======================================================================
|
---|
11 |
|
---|
12 | ;"MatchPrt(Printers)
|
---|
13 |
|
---|
14 | ;"=======================================================================
|
---|
15 | ;" Functions Used During Printing Process
|
---|
16 | ;"=======================================================================
|
---|
17 | ;"SETJOB(Filename)
|
---|
18 | ;"FINISH(Printer)
|
---|
19 |
|
---|
20 |
|
---|
21 | ;"Dependancies
|
---|
22 | ;" TMGXDLG.m
|
---|
23 | ;"=======================================================================
|
---|
24 | ;"Private Functions
|
---|
25 | ;"=======================================================================
|
---|
26 | ;"GetPrinters^TMGPRNTR(Printers)
|
---|
27 | ;"GetPrtDefs(PrtDefs)
|
---|
28 | ;"PickPrtDef(LinuxPrt,PrtDefs,Output)
|
---|
29 |
|
---|
30 |
|
---|
31 |
|
---|
32 | GetPrinters(Printers)
|
---|
33 | ;"Purpose: To interact with Redhat 9 Linux printer system and get a list
|
---|
34 | ;" of defined printers
|
---|
35 | ;"Input: (Printers is an OUT variable. MUST PASS BY REFERENCE
|
---|
36 | ;"Output: Printers variable will be filled like this:
|
---|
37 | ;" Printers(0,"COUNT")=2
|
---|
38 | ;" Printers(1)="Deskjet1"
|
---|
39 | ;" Printers(2)="Laser1"
|
---|
40 | ;"result: 1=OkToCont 0=Abort
|
---|
41 |
|
---|
42 | ;"Notes: Here is a simple way to get the available printers from the CUPS system
|
---|
43 | ;"#lpstat -p >/tmp/DefinedPrinters.txt
|
---|
44 | ;"#cat DefinedPrinters.txt
|
---|
45 | ;"printer Laser is idle. enabled since Jan 01 00:00
|
---|
46 | ;"--notice that in this case "Laser" is the name of the printer. There is only 1 printer.
|
---|
47 | ;"This printer could be used like this:
|
---|
48 | ;"lp -d Laser MyFile.txt
|
---|
49 |
|
---|
50 |
|
---|
51 | new Cmd,HookCmd
|
---|
52 | new FileHandle
|
---|
53 | new CmdResult
|
---|
54 | new lpReport
|
---|
55 | new index,PrtIndex
|
---|
56 | new PrinterCount set PrinterCount=0
|
---|
57 | new cOKToCont set cOKToCont=1
|
---|
58 | new cAbort set cAbort=0
|
---|
59 | if $data(TMGDEBUG)#10=0 new TMGDEBUG set TMGDEBUG=0
|
---|
60 |
|
---|
61 | new result set result=cOKToCont
|
---|
62 |
|
---|
63 | if TMGDEBUG>0 do Entry^TMGDEBUG(.DBIndent,"GetPrinters")
|
---|
64 |
|
---|
65 | new CommFPath set CommFPath="/tmp/"
|
---|
66 | new CommFName set CommFName="M_Printer_comm_"_$J_".tmp"
|
---|
67 | new CommFile set CommFile=CommFPath_CommFName
|
---|
68 |
|
---|
69 | set HookCmd="lpstat -p>"_CommFile
|
---|
70 | ;"write "Here is hook command",!,!,HookCmd,!,!
|
---|
71 | zsystem HookCmd
|
---|
72 |
|
---|
73 | set CmdResult=$ZSYSTEM&255 ;"get result of execution. (low byte only)
|
---|
74 | ;"write "CmdResult=",CmdResult,! ;"1=error
|
---|
75 | if CmdResult=0 set result=cOKToCont else set result=cAbort goto GPDone
|
---|
76 |
|
---|
77 | ;"Read output info Results
|
---|
78 | set FileHandle=$$FTG^%ZISH(CommFPath,CommFName,$name(lpReport("LIST")),3)
|
---|
79 | ;"zwr lpReport(*)
|
---|
80 |
|
---|
81 | ;"Now kill the communication file... no longer needed.
|
---|
82 | new FileSpec
|
---|
83 | set FileSpec(CommFile)=""
|
---|
84 | set result=$$DEL^%ZISH(CommFPath,$name(FileSpec))
|
---|
85 |
|
---|
86 | set index=""
|
---|
87 | for do quit:(index="")
|
---|
88 | . new s
|
---|
89 | . set s=$get(lpReport("LIST",index))
|
---|
90 | . if s="" quit
|
---|
91 | . new Prt set Prt=$piece(s," ",2)
|
---|
92 | . if Prt'="" do
|
---|
93 | . . set PrinterCount=PrinterCount+1
|
---|
94 | . . set Printers(PrinterCount)=Prt
|
---|
95 | . set index=$order(lpReport("LIST",index))
|
---|
96 |
|
---|
97 | ;"if $data(Printers) zwr Printers(*)
|
---|
98 | ;"w "done"
|
---|
99 |
|
---|
100 | GPDone
|
---|
101 | set Printers(0,"COUNT")=PrinterCount
|
---|
102 | if TMGDEBUG>0 do DebugExit^TMGDEBUG(.DBIndent,"GetPrinters")
|
---|
103 |
|
---|
104 | quit result
|
---|
105 |
|
---|
106 |
|
---|
107 | GetPrtDefs(PrtDefs)
|
---|
108 | ;"Purpose: To get a list of printer definitions (i.e. TERMINAL TYPES)
|
---|
109 | ;"Input: PrtDefs -- SHOULD BE PASSED BY REFERENCE to receive results.
|
---|
110 | ;"Output: (PrtDefs is changed)
|
---|
111 | ;" PrtDefs(0,"COUNT")=12
|
---|
112 | ;" PrtDefs(1,"NAME")="P-ANADEX"
|
---|
113 | ;" PrtDefs(1,"DESCRIPTION")="ANADEX PRINTER 10P"
|
---|
114 | ;" PrtDefs(2,"NAME")="P-CENT"
|
---|
115 | ;" PrtDefs(2,"DESCRIPTION")="Centronix printer"
|
---|
116 | ;" ... etc.
|
---|
117 | ;"Result: 1=OKToCont 0=Abort
|
---|
118 |
|
---|
119 | ;"TERMINAL TYPE if file 3.2
|
---|
120 |
|
---|
121 | new cOKToCont set cOKToCont=1
|
---|
122 | new cAbort set cAbort=0
|
---|
123 | if $data(TMGDEBUG)#10=0 new TMGDEBUG set TMGDEBUG=0
|
---|
124 |
|
---|
125 | if TMGDEBUG>0 do DebugEntry^TMGDEBUG(.DBIndent,"GetPrtDefs")
|
---|
126 |
|
---|
127 | new Matches,Msg
|
---|
128 | if $data(PriorErrorFound)=0 new PriorErrorFound
|
---|
129 | if $data(DBIndent)=0 new DBIndent set DBIndent=0
|
---|
130 | new NumMatches,index
|
---|
131 | new PrtCount set PrtCount=0
|
---|
132 | new result set result=cOKToCont
|
---|
133 | new MatchValue set MatchValue="P-"
|
---|
134 |
|
---|
135 | ;"======================================================
|
---|
136 | ;"Call FIND^DIC
|
---|
137 | ;"======================================================
|
---|
138 | ;"Params:
|
---|
139 | ;"FILE,IENS,FIELDS,FLAGS,VALUE,NUMBER,INDEXES,SCREEN,IDENTIFIER,TARGET_ROOT,MSG_ROOTS
|
---|
140 | if TMGDEBUG>0 do DebugEntry^TMGDEBUG(.DBIndent,"FIND^DIC")
|
---|
141 | if TMGDEBUG>0 do DebugMsg^TMGDEBUG(.DBIndent," MatchValue=",MatchValue)
|
---|
142 | do FIND^DIC("3.2","","@;.01","",MatchValue,"*",,"",,"Matches","Msg")
|
---|
143 | if TMGDEBUG>0 do DebugExit^TMGDEBUG(.DBIndent,"FIND^DIC")
|
---|
144 | ;"======================================================
|
---|
145 | ;"======================================================
|
---|
146 |
|
---|
147 | if $data(Msg("DIERR"))'=0 do goto GPDDone
|
---|
148 | . do ShowDIERR^TMGDEBUG(.Msg,.PriorErrorFound)
|
---|
149 | . set result=cAbort
|
---|
150 |
|
---|
151 | if $data(Matches) do
|
---|
152 | . if TMGDEBUG>0 do DebugMsg^TMGDEBUG(.DBIndent,"Here are Matches entries")
|
---|
153 | . if TMGDEBUG>0 do ArrayDump^TMGDEBUG("Matches")
|
---|
154 |
|
---|
155 | if $data(Matches("DILIST"))=0 goto GPDDone
|
---|
156 |
|
---|
157 | set NumMatches=$piece(Matches("DILIST",0),"^",1)
|
---|
158 | kill PrtDefs
|
---|
159 | set PrtDefs(0,"COUNT")=NumMatches
|
---|
160 | if NumMatches=0 goto GPDDone ;"keep RecNumIEN default of 0
|
---|
161 | if TMGDEBUG>0 do DebugMsg^TMGDEBUG(.DBIndent,"Here are Matches entries")
|
---|
162 | if TMGDEBUG>0 do ArrayDump^TMGDEBUG("Matches")
|
---|
163 |
|
---|
164 | for index=1:1:NumMatches do
|
---|
165 | . kill OneMatch
|
---|
166 | . new Name,Descr
|
---|
167 | . set Name=$get(Matches("DILIST","ID",index,.01))
|
---|
168 | . set Descr=$get(^%ZIS(2,index,9))
|
---|
169 | . set PrtDefs(index,"NAME")=Name
|
---|
170 | . set PrtDefs(index,"DESCRIPTION")=Descr
|
---|
171 |
|
---|
172 | GPDDone
|
---|
173 | if TMGDEBUG>0 do DebugExit^TMGDEBUG(.DBIndent,"GetPrtDefs")
|
---|
174 | quit result
|
---|
175 |
|
---|
176 |
|
---|
177 | PickPrtDef(LinuxPrt,PrtDefs,Output)
|
---|
178 | ;"Purpose: To show all the printer types (TERMINAL TYPES), and have user pick one
|
---|
179 | ;"Input: LinuxPrt -- name of Linux printer, as retrieved from GetPrinters()
|
---|
180 | ;" PrtDefs -- Array of printer defs, as returned from GetPrtDefs(PrtDefs)
|
---|
181 | ;" Array will not be changed, even if passed by reference.
|
---|
182 | ;" Output -- MUST BE PASSED BY REFERENCE. Will be formated like this:
|
---|
183 | ;" Output(0,"COUNT")=1
|
---|
184 | ;" Output(1,"LINUX")="Laser1" <----- Prior results
|
---|
185 | ;" Output(1,"TYPE")="P-ANADEX"
|
---|
186 | ;"Output: Output -- MUST BE PASSED BY REFERENCE. Output will be formated like this:
|
---|
187 | ;" Output(0,"COUNT")=2
|
---|
188 | ;" Output(1,"LINUX")="Laser1" <----- Prior results
|
---|
189 | ;" Output(1,"TYPE")="P-ANADEX"
|
---|
190 | ;" Output(2,"LINUX")="Printer2" <----- Added results
|
---|
191 | ;" Output(2,"TYPE")="P-CENT"
|
---|
192 | ;"Result: 1=OKToCont 0=Abort, OR Cancel pressed.
|
---|
193 |
|
---|
194 | new cOKToCont set cOKToCont=1
|
---|
195 | new cAbort set cAbort=0
|
---|
196 | new result set result=cAbort
|
---|
197 | if $data(TMGDEBUG)#10=0 new TMGDEBUG set TMGDEBUG=0
|
---|
198 | new tPrtDefs
|
---|
199 | new DefCount,OutCount
|
---|
200 | new index
|
---|
201 | new UserPick
|
---|
202 |
|
---|
203 | set DefCount=$get(PrtDefs(0,"COUNT"),0)
|
---|
204 | if DefCount=0 do goto PPDefDone
|
---|
205 | . write "No printer defs! Quitting!",!
|
---|
206 | set OutCount=$get(Output(0,"COUNT"),0)
|
---|
207 | Set Output(0,"COUNT")=OutCount ;"Ensure this is set before any need to abort
|
---|
208 |
|
---|
209 | for index=1:1:DefCount do
|
---|
210 | . new s,Name,Descr
|
---|
211 | . set s=index_"; "
|
---|
212 | . set Name=$get(PrtDefs(index,"NAME"))
|
---|
213 | . ;"write "converted: ",Name," to "
|
---|
214 | . set Name=$extract(Name,3,128)
|
---|
215 | . ;"write Name,!
|
---|
216 | . set Descr=$get(PrtDefs(index,"DESCRIPTION"))
|
---|
217 | . set s=s_Name
|
---|
218 | . if Descr'="" set s=s_Name_" -- "_Descr
|
---|
219 | . set tPrtDefs(index)=s
|
---|
220 |
|
---|
221 | new s set s="---- Pick VistA driver for printer '"_LinuxPrt_"' ----\n\n"
|
---|
222 | set s=s_"(Note: If you can not find an corresponding driver for your\n"
|
---|
223 | set s=s_"printer, then see your installer regarding adding an\n"
|
---|
224 | set s=s_"appropriate entry to the TERMINAL TYPE file, then retry.)"
|
---|
225 | set UserPick=$$Combo^TMGXDLG(s,80,15,.tPrtDefs)
|
---|
226 | if UserPick="" goto PPDefDone
|
---|
227 | set index=+$piece(UserPick,";",1)
|
---|
228 | if index=0 goto PPDefDone
|
---|
229 | set OutCount=OutCount+1
|
---|
230 |
|
---|
231 | set Output(OutCount,"LINUX")=LinuxPrt
|
---|
232 | set Output(OutCount,"TYPE")=PrtDefs(index,"NAME")
|
---|
233 | Set Output(0,"COUNT")=OutCount
|
---|
234 |
|
---|
235 | set result=cOKToCont
|
---|
236 | PPDefDone
|
---|
237 | quit result
|
---|
238 |
|
---|
239 |
|
---|
240 |
|
---|
241 | MatchPrt(Output)
|
---|
242 | ;"Purpose: To create match between Linux printers, and definitions
|
---|
243 | ;"Input: Output -- and out parameter. MUST BE PASSED BY REFERENCE
|
---|
244 | ;"Output: (Output is changed) as follows
|
---|
245 | ;" Output(0,"COUNT")=2
|
---|
246 | ;" Output(1,"LINUX")="Deskjet1" <-- suitable name for linux: lp -p PRINTER
|
---|
247 | ;" Output(1,"TYPE")="P-ANADEX"
|
---|
248 | ;" Output(2,"LINUX")="Laser1" <-- suitable name for linux: lp -p PRINTER
|
---|
249 | ;" Output(2,"TYPE")="P-CENT"
|
---|
250 |
|
---|
251 | new cOKToCont set cOKToCont=1
|
---|
252 | new cAbort set cAbort=0
|
---|
253 | if $data(TMGDEBUG)#10=0 new TMGDEBUG set TMGDEBUG=0
|
---|
254 | if $data(DispMode)#10=0 new DispMode set DispMode=1 ;"1=GUI, 3=Roll-n-Scroll
|
---|
255 | new result set result=cOKToCont
|
---|
256 | new PrtDefs,Printers
|
---|
257 | new PrtCount set PrtCount=0
|
---|
258 | kill Output ;"clear any prior entries.
|
---|
259 |
|
---|
260 | if DispMode'=1 do goto SUPDone
|
---|
261 | . write "Currently unable to set up printers in 'Roll-and-Scroll' mode. Quitting.",!
|
---|
262 |
|
---|
263 | set result=$$GetPrinters(.Printers)
|
---|
264 | if result=cAbort do goto SUPDone
|
---|
265 | . do ShowError^TMGDEBUG(.PriorErrorFound,"Unable to get Printers.")
|
---|
266 |
|
---|
267 | set result=$$GetPrtDefs(.PrtDefs)
|
---|
268 | if result=cAbort do goto SUPDone
|
---|
269 | . do ShowError^TMGDEBUG(.PriorErrorFound,"Unable to get Printer definitions.")
|
---|
270 |
|
---|
271 | new tPrts
|
---|
272 | new Selected set Selected=""
|
---|
273 | merge tPrts=Printers
|
---|
274 | kill tPrts(0)
|
---|
275 | ;"set tPrts(2)="TestPrinter" ;"temp!!!!!
|
---|
276 | ;"set tPrts(3)="TestPrinter2" ;"temp!!!!!
|
---|
277 | for do quit:Selected=""
|
---|
278 | . ;"write "loop1, selected=",Selected,!
|
---|
279 | . set Selected=$$Combo^TMGXDLG("Select Printer to Setup",,,.tPrts)
|
---|
280 | . if Selected="" quit
|
---|
281 | . ;"write "OK, now to set up printer: ",Selected,!
|
---|
282 | . new tResult set tResult=$$PickPrtDef(Selected,.PrtDefs,.Output)
|
---|
283 | . ;"Note: I am not doing anything if user cancels pick of printer type.
|
---|
284 | . ;"Now remove that printer from list of printers to install.
|
---|
285 | . new index set index=$order(tPrts(""))
|
---|
286 | . new NextIndex set NextIndex=""
|
---|
287 | . for do quit:(index="")
|
---|
288 | . . ;"write "loop2, index=",index,!
|
---|
289 | . . set NextIndex=1
|
---|
290 | . . if index="" quit
|
---|
291 | . . if $get(tPrts(index))=Selected do quit
|
---|
292 | . . . set NextIndex=$order(tPrts(index))
|
---|
293 | . . . kill tPrts(index)
|
---|
294 | . . . set index=""
|
---|
295 | . . set index=$order(tPrts(index))
|
---|
296 | . if $data(tPrts)=0 do quit
|
---|
297 | . . set Selected="" ;"force quit
|
---|
298 | . ;"Now move all entries below this one UP
|
---|
299 | . set index=NextIndex
|
---|
300 | . for do quit:index=""
|
---|
301 | . . ;"write "loop3, index=",index,!
|
---|
302 | . . if index="" quit
|
---|
303 | . . set tPrts(index-1)=tPrts(index)
|
---|
304 | . . new PriorIndex set PriorIndex=index
|
---|
305 | . . set index=$order(tPrts(index))
|
---|
306 | . . kill tPrts(PriorIndex)
|
---|
307 | . . if $data(tPrts)=0 do
|
---|
308 | . . . set Selected=""
|
---|
309 | . . . set index=""
|
---|
310 |
|
---|
311 | SUPDone
|
---|
312 | quit result
|
---|
313 |
|
---|
314 |
|
---|
315 | SetupPrt
|
---|
316 | ;"To query linux printer system, and create VistA entries for these.
|
---|
317 |
|
---|
318 |
|
---|
319 | new cFile set cFile="FILE"
|
---|
320 | new cEntries set cEntries="Entries"
|
---|
321 |
|
---|
322 | ; new Data
|
---|
323 | ; set Data(0,cFile)="3.5"
|
---|
324 | ; set Data(0,cEntries)=1
|
---|
325 | ; set Data
|
---|
326 | ;
|
---|
327 | ; 1 0;1 .01 NAME [RFX]
|
---|
328 | ; 2 1;1 .02 LOCATION OF TERMINAL [RF]
|
---|
329 | ; MN;0 .03 MNEMONIC <-Mult [3.501]
|
---|
330 | ; 3 -0;1 .01 -MNEMONIC [MFX]
|
---|
331 | ; 4 1;4 .04 LOCAL SYNONYM [F]
|
---|
332 | ; 5 0;2 1 $I [RFX]
|
---|
333 | ; 6 0;9 1.9 VOLUME SET(CPU) [FX]
|
---|
334 | ; 7 0;11 1.95 SIGN-ON/SYSTEM DEVICE [SX]
|
---|
335 | ; 8 TYPE;1 2 TYPE [RS]
|
---|
336 | ; 9 SUBTYPE;1 3 SUBTYPE <-Pntr [RP3.2]
|
---|
337 | ; 10 0;3 4 ASK DEVICE [S]
|
---|
338 | ; 11 0;4 5 ASK PARAMETERS [S]
|
---|
339 | ; 12 1;5 5.1 ASK HOST FILE [S]
|
---|
340 | ; 13 1;6 5.2 ASK HFS I/O OPERATION [S]
|
---|
341 | ; 14 0;12 5.5 QUEUING [S]
|
---|
342 | ; 15 90;1 6 OUT-OF-SERVICE DATE [D]
|
---|
343 | ; 17 90;3 8 KEY OPERATOR [F]
|
---|
344 | ;18 91;1 9 MARGIN WIDTH [NJ3,0]
|
---|
345 | ; 19 91;3 11 PAGE LENGTH [NJ5,0]
|
---|
346 | ; 20 1;11 11.2 SUPPRESS FORM FEED AT CLOSE [S]
|
---|
347 | ; 27 POX;E1,245 19.7 PRE-OPEN EXECUTE [K]
|
---|
348 | ; 28 PCX;E1,245 19.8 POST-CLOSE EXECUTE [K]
|
---|
349 | ;
|
---|
350 | ;
|
---|
351 | ;NAME: TEST-LINUX-PRINTER $I: <To be set in PRE-OPEN EXECUTE>
|
---|
352 | ; ASK DEVICE: NO ASK PARAMETERS: NO
|
---|
353 | ; SIGN-ON/SYSTEM DEVICE: NO LOCATION OF TERMINAL: Laughlin_Office
|
---|
354 | ; ASK HOST FILE: NO ASK HFS I/O OPERATION: NO
|
---|
355 | ; NEAREST PHONE: 787-7000 PAGE LENGTH: 80
|
---|
356 | ; FORM CURRENTLY MOUNTED: Plain paper
|
---|
357 | ; POST-CLOSE EXECUTE: DO FINISH^TMGPRNTR("laughlin_laser")
|
---|
358 | ; PRE-OPEN EXECUTE: DO SETJOB^TMGPRNTR(.IO) ;Note: Change IO (output file)
|
---|
359 | ; SUBTYPE: P-OTH80 TYPE: TERMINAL
|
---|
360 | ; ASK DEVICE TYPE AT SIGN-ON: YES, ASK
|
---|
361 |
|
---|
362 | quit
|
---|
363 |
|
---|
364 |
|
---|
365 | ;"=======================================================================
|
---|
366 | ;"=======================================================================
|
---|
367 |
|
---|
368 |
|
---|
369 | GETJOBNM()
|
---|
370 | ;"Purpose: To create a unique printer job name. This will be used during a printing process
|
---|
371 | ;" that writes the printer file to the host file system, then passes file to Linux
|
---|
372 | ;" printing system.
|
---|
373 | ;"Output: Returns name of file to put output into
|
---|
374 |
|
---|
375 | ;"UNIQUE will generate a filename based on time and job number
|
---|
376 | ;" i.e. 'Print-Job-628233034.tmp
|
---|
377 |
|
---|
378 | ;"write !,"here in GETJOBNM^TMGPRNTR",!
|
---|
379 | new cJobs set cJobs="PRINT JOBS"
|
---|
380 | new Filename set Filename=$$UNIQUE^%ZISUTL("/tmp/Print-Job.tmp")
|
---|
381 |
|
---|
382 | ;"Now store Filename for later transfer to Linux lpr
|
---|
383 | new index set index=$order(^TMP("TMG",cJobs,$J,""))
|
---|
384 | if index="" set index=1
|
---|
385 | set ^TMP("TMG",cJobs,$J,index)=Filename
|
---|
386 |
|
---|
387 | ;"write !,"Print job name will be:",Filename,!
|
---|
388 | quit Filename ;"result returned by altering Filename
|
---|
389 |
|
---|
390 |
|
---|
391 |
|
---|
392 | FINISH(Printer)
|
---|
393 | ;"Purpose: to complete the printing process by sending the now-created file
|
---|
394 | ;" to Linux CUPS (the printing system).
|
---|
395 | ;"Note: The lpr system itself will delete this print file when done (option -r)
|
---|
396 | ;"Input: Printer OPTIONAL -- the name of the linux printer to send the job to.
|
---|
397 |
|
---|
398 | new cJobs set cJobs="PRINT JOBS"
|
---|
399 | new index set index=$order(^TMP("TMG",cJobs,$J,""))
|
---|
400 | new Filename set Filename=$get(^TMP("TMG",cJobs,$J,index))
|
---|
401 |
|
---|
402 | close IO
|
---|
403 | kill IO(1,IO)
|
---|
404 |
|
---|
405 | kill ^TMP("TMG",cJobs,$J,index)
|
---|
406 |
|
---|
407 | if Filename'="" do
|
---|
408 | . new CmdStr
|
---|
409 | . set CmdStr="lpr "
|
---|
410 | . if $get(Printer)'="" set CmdStr=CmdStr_"-P "_Printer_" "
|
---|
411 | . set CmdStr=CmdStr_"-r " ;"option -r --> lpr deletes file after printing done.
|
---|
412 | . set CmdStr=CmdStr_Filename_" &"
|
---|
413 | . zsystem CmdStr
|
---|
414 |
|
---|
415 | quit
|
---|
416 |
|
---|
417 |
|
---|
418 |
|
---|
419 |
|
---|
420 |
|
---|