Toggle echo of console output to the printer or set the destination of
SET PRINTER on | OFF | <xlToggle>
SET PRINTER TO [<xcDevice> | <xcFile> [ADDITIVE]]
ON echoes console output to the printer.
OFF suppresses the printing of console output.
<xlToggle> is a logical expression that must be enclosed in
parentheses. A value of true (.T.) is the same as ON, and a value of
false (.F.) is the same as OFF.
TO <xcDevice> identifies the name of the device where all subsequent
printed output will be sent. You can specify a device name as a literal
character string or a character expression enclosed in parentheses.
Additionally, a device can be either local or network. SETting PRINTER
TO a nonexistent device creates a file with the name of the device.
When specifying device names, do not use a trailing colon.
TO <xcFile> identifies the name of the output file. You can specify
the file name as a literal string or as a character expression enclosed
in parentheses. If a file extension is not specified, .prn is assumed.
ADDITIVE causes the specified output file to be appended to instead
of overwritten. If ADDITIVE is not specified, an existing output file
is truncated before new information is written to it. The ADDITIVE
clause is only meaningful when SETting PRINTER TO an output file.
If SET PRINTER TO is specified with no arguments, the currently
specified device or file is closed and the default destination is then
SET PRINTER, like many other SET commands, has two basic forms with each
having its own functionality. The on|OFF form of SET PRINTER controls
whether the output of console commands is echoed to the printer.
Console commands generally do not specify row and column coordinates.
All of these commands, except ?|??, have a TO PRINTER clause that also
directs output to the printer. Output from console commands is
displayed to the screen unless CONSOLE is OFF. Be aware that @...SAYs
are not affected by SET PRINTER ON. To send them to the printer, use
SET DEVICE TO PRINTER instead.
SET PRINTER TO determines the destination of output from all commands
and functions that send output to the printer. This includes @...SAYs
if DEVICE is SET TO PRINTER. Output can be sent to a device or to a
file. If the destination is a device, the following names are valid:
LPT1, LPT2, LPT3 (all parallel ports), COM1, and COM2 (serial ports),
CON and PRN. The default device is PRN.
If the destination is a file, it is created in the current DEFAULT
directory. If a file with the same name exists in the same location, it
is overwritten by the new file without warning. All subsequent output
to the printer is then written to this file until the file is closed
using SET PRINTER TO with no argument.
Use SET PRINTER TO for:
. Managing multiple printers by swapping ports
. Directing output to a file for printing later or for
transferring to a remote computer via telecommunications
. Emptying the printer spooler and resetting the default device
. Compatibility: Clipper does not support the syntax SET
PRINTER TO \\SPOOLER or \\CAPTURE. Specifying SET PRINTER with
either of these options creates the files Spooler.prn or Capture.prn.
The symbols \\ are ignored.
. End of file marks: When printer output is redirected to a
file, an end of file mark (CHR(26)) is not written when the file is
closed. To terminate a file with an end of file mark, issue a ??
CHR(26) just before the SET PRINTER command that closes the file.
. Networking: For some networks, the workstation's printer
should first be redirected to the file server (usually by running the
network spooler program).
. This example echoes the output of the ? command to printer,
suppressing the console screen display by SETting CONSOLE OFF:
USE Customer NEW
SET PRINTER ON
SET CONSOLE OFF
DO WHILE !EOF()
? Customer->Name, Customer->Phone
SET PRINTER OFF
SET CONSOLE ON
. This example directs printer output to LPT1 and empties the
print spooler upon completion:
SET PRINTER TO LPT1
SET PRINTER TO // Empty the print spooler
. This example sends printer output to a text file, overwriting
an existing file with the same name:
SET PRINTER TO Prnfile.txt
SET DEVICE TO PRINTER
SET PRINTER ON
@ 0, 0 SAY "This goes to Prnfile.txt"
? "So will this!"
SET DEVICE TO SCREEN
SET PRINTER OFF
SET PRINTER TO // Close the print file
Files Library is CLIPPER.LIB.
See Also: @…SAY EJECT SET CONSOLE SET DEVICE SETPRC()