Under Cache for Linux the print queue name can be specified in the DEVICE file $I field and nothing special is required to make printing work. However, under GT.M I think that steps similar to those you outline below are needed. You can use the PRE-OPEN EXECUTE field to set the process-specific file name. Similarly use the POST-CLOSE EXECUTE for the zsystem call. You may need to save the file name in a namespaced variable in order to refer to it in the POST-CLOSE. Possibly there's a simpler way. However, when I looked at this a long time ago I couldn't find a more direct approach that worked.

Lloyd

----- Original Message ----- From: "Kevin Toppenberg" <[EMAIL PROTECTED]>
To: <hardhats-members@lists.sourceforge.net>
Sent: Sunday, January 09, 2005 10:20 AM
Subject: [Hardhats-members] Setting up Printers (was overview...)



Hey all,

I'm back trying to get printers working.  Here is the
plan that seems best:

1. generate a unique filename for each print job
1. write the file to disk (host-file-system)
2. execute a ZSYSTEM lpr with the filename
3. at some later point, delete the print job file.

Below are helpful posts that have helped me, but I
don't fully understand.

My question is about the variable "IO", as it is used
in the CLOSE EXECUTE as per below.  When I do a dump
of IO on my system, this is what I see:

zwr IO
IO="/dev/pts/4"
IO(0)="/dev/pts/4"
IO(1,"/dev/pts/4")=""
IO("HOME")="38^/dev/pts/4"
IO("ZIO")="/dev/pts/4"

-Here is the suggested items for TERMINAL TYPE

TERMINAL TYPE FILE:

P-SLAVE HP 80 GTM/LINUX
FORM FEED: #
RIGHT MARGIN: 80
PAGE LENGTH: 60
BACK SPACE: $C(8)
CLOSE EXECUTE: U IO K IO(1,IO) C IO ZSYSTEM "lpr r"_IO


I don't understand what the CLOSE EXECUTE code is doing. I'll break it appart to show my thinking

1. USE IO -- IO on my system is "/dev/pts/4".  But
there was a suggestion somewhere to use
UNIQUE^%ZISUTL() to create a unique IO name.  If I
were to change IO to "printjob123.dat", what other
effect will this have?

2. KILL IO(1,IO) -- why is this being killed?

3. CLOSE IO -- should stop the USE IO command.  But I
don't see that anything useful was done between the
USE and CLOSE commands.

4. ZSYSTEM -- This is where the Linux OS is told to
actually print out the file "IO"


Also, in Chris's post below he set $I for the DEVICE file entry to $HOME/slave.dat. But Fil added a suggestion to add PRE-OPEN EXECUTE code to create a unique filename. Would I then have $I to be this:? $HOME/IO It seems that would just send to file "IO" rather than to the VALUE of IO (i.e. "PrintJob123")

I am also not sure as the the order of execution.
There is PRE-OPEN EXECUTE and POST-CLOSE EXECUTE in
the DEVICE file entry, and also in the TERMINAL TYPE
file.

Anyway, as you can tell, I'm floundering a bit.  Can
anyone help?  Thanks

Kevin

P.S.  In the DEVICE file, I see field for PRINT SERVER
NAME OR ADDRESS (#65), and TELNET PORT (#66).  The
help for these fields hint that they are for using lpd
protocol to print to a print server.  Does anyone know
about this?  I might be a more straight-forward way of
printing vs. the method outlined above.

Thanks again
Kevin

--- "Beza, Fil" <[EMAIL PROTECTED]> wrote:

In the DEVICE File, put the code in PRE OPEN EXECUTE
to change the IO
variable to the unique name.

  _____

From: [EMAIL PROTECTED]

[mailto:[EMAIL PROTECTED]
On Behalf Of Beza,
Fil
Sent: Saturday, November 13, 2004 8:22 AM
To: hardhats-members@lists.sourceforge.net
Subject: RE: [Hardhats-members] Printers... An
overview please.


Hmmm... we don't have that problem in VMS because each file gets a different version number.

Take a look at %ZISUTL.  It has an entry point to
generate unique names

UNIQUE(ZISNA) ;Build a unque number to add to a
device name
         ;If passed a name put the number before the
last dot.
         N %,%1
         S %=$H,%=$H_"-"_$J,%=$$CRC32^XLFCRC(%)
         I '$L($G(ZISNA)) Q %
         S %1=$L(ZISNA,"."),%="_"_%
         S:%1=1 %=ZISNA_% S:%1>1
%=$P(ZISNA,".",1,%1-1)_%_"."_$P(ZISNA,".",%1)
         Q %


_____

From: [EMAIL PROTECTED]

[mailto:[EMAIL PROTECTED]
On Behalf Of Kevin
Toppenberg
Sent: Saturday, November 13, 2004 5:55 AM
To: hardhats-members@lists.sourceforge.net
Subject: RE: [Hardhats-members] Printers... An
overview please.


Thanks for your feedback Fil.

It seems to me that one would need to send the
printer file to a file
with $J somehow included in it.  Otherwise with
dozens of users on the
system simultaneously, the slave.dat file would be
overwritten
erroneously.

Thanks
Kevin

"Beza, Fil" <[EMAIL PROTECTED]> wrote:

You can create multiple entries in the device file
pointing to
the same
physical printer. Point each one to a different
terminal type
where each
terminal type changes pitch etc depending on the
PCL code you
send to
printer. Each TERMINAL TYPE entry will have a
different OPEN
EXECUTE.
Take a look at the P-HP... entries in the TERMINAL
TYPE File. A
bunch
of them are distributed with the FOIA distribution.


Here are three HP OPEN EXECUTES I use

10 PITCH
OPEN EXECUTE: W


$C(27),"E",$C(27),"&l0o0S",$C(27),"&s0C",$C(27),"&k10H",$C(27)
,"&l7.4c2e67F",$C(27),"&a05l95M"

16 PITCH
OPEN EXECUTE: W


$C(27),"E",$C(27),"&l0o0S",$C(27),"&s0C",$C(27),"&k10H",$C(27)
,"&l7.4c2e67F",$C(27),"&a05l132M",$C(27),"(s16h"

DUPLEX (DOUBLE SIDED) PRINT
OPEN EXECUTE: W


$C(27),"E",$C(27),"&l0o1S",$C(27),"&s0C",$C(27),"&k10H",$C(27)
,"&l7.4c2e67F",$C(27),"&a05l95M"


-----Original Message----- From: [EMAIL PROTECTED]


[mailto:[EMAIL PROTECTED]
On Behalf
Of Beza,
Fil
Sent: Friday, November 12, 2004 12:36 PM
To: hardhats-members@lists.sourceforge.net
Subject: RE: [Hardhats-members] Printers... An
overview please.

What Bhaskar said is how we print via TCPIP in
Cache/VMS. We
actually
send the output to a file thus we treat the Device
as a file
instead of
a printer. Then using the CLOSE EXECUTE field in
the Terminal
Type file
we send a command to VMS to send the file to the
printer.


Try this - courtesy of Chris Richardson:

DEVICE FILE:

NAME: your device name
ASK DEVICE: NO
ASK PARAMETERS: NO
ASK HOST FILE: NO
SUPPRESS FORM FEED AT CLOSE: YES
TYPE: HOST FILE SERVER
SUBTYPE: P-SLAVE TEXT GTM/LINUX
$I: $HOME/slave.dat
OPEN PARAMETERS: newversion


TERMINAL TYPE FILE:

P-SLAVE HP 80 GTM/LINUX
FORM FEED: #
RIGHT MARGIN: 80
PAGE LENGTH: 60
BACK SPACE: $C(8)
CLOSE EXECUTE: U IO K IO(1,IO) C IO ZSYSTEM "lpr -r
"_IO



-snip-




__________________________________ Do you Yahoo!? Yahoo! Mail - Easier than ever with enhanced search. Learn more. http://info.mail.yahoo.com/mail_250


------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Hardhats-members mailing list Hardhats-members@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/hardhats-members




------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Hardhats-members mailing list Hardhats-members@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/hardhats-members

Reply via email to