lpr(x, command="lpr", width=80, length=66, wait=F, rm.file=T,
...)
print should use in
formatting
x. This will correspond to the width of the printed page
in the font used, unless
command adds indentation.
print should use in
formatting
x. This will correspond to the length of the printed page
in the font used, unless
command adds a header or trailer.
TRUE,
lpr will wait for
command to return.
TRUE, the temporary file will be removed
after
command returns. This is independent of
wait. It would
make sense to specify
rm.file=FALSE only if
command removes the
file.
x.
x is invisibly returned.
x is spooled for printing.
This function will write
x on a temporary file with the S-PLUS function
print
. It then gives the name of this file to
command. Since the UNIX
command to print an ASCII file is system dependent, it will typically be
necessary to pass the
lpr function a value of
command other than the
default. The same is true of arguments
width and
length, as the
font sizes will depend on your installation.
A convenient way to customize
lpr is to write a wrapper function for
it. Ask your local S-PLUS administrator, or see the examples.
This function uses
sink, so it will wipe out any sink in effect.
The
length argument will have no effect on the formatting of
matrices when file descriptor 1 of
the S-PLUS process is not a terminal. This will be the case, for
example, when the standard output was redirected to a file or pipe
at startup. Under these circumstances, matrices are always formatted
for an infinitely long page.
lpr(my.function, command="lpr -Pfred")
# Assumes the UNIX lpr command accepts ASCII files.
# Will send to printer "fred".
# The next examples assume that the printer understands only PostScript,
# and that the UNIX command to print an ASCII file is enscript,
# available as part of the Transcript software from Adobe Systems.
lpr(x, command="enscript -B", width=90, length=64)
# assumes default font size is 10 point
lpr(x, command="grace enscript -B <", width=90, length=64)
# if enscript is installed only on remote host "grace"
lpr(x, command="enscript -r -B", width=125, length=49)
# landscape (horizontal) orientation
# The following is an example of a wrapper function for 'lpr' using
# enscript.
lpr.enscript <-
function(x, header = NULL, landscape = F, columns = 1,
font = if(columns == 2) "Courier7" else "Courier10", width,
length, ...)
{
# front-end to S-PLUS lpr function, for Adobe's enscript program.
# 'width' and 'length' in this function refer to the printed page,
# and include the header. Default values will not be correct for other
# font sizes.
if(missing(width))
width <- if(columns == 2)
ifelse(landscape, 89, 66)
else if(columns == 1)
ifelse(landscape, 125, 90)
else
stop("columns must be 1 or 2")
if(missing(length))
length <- if(columns == 2)
ifelse(landscape, 67, 90)
else
ifelse(landscape, 49, 66)
if(is.null(header))
header <- paste(deparse(substitute(x)), " ", date())
header <- paste(sep = "", "'-b\\"", header, "\\"'")
orient <- if(landscape) "-r" else ""
col.flag <- paste("-", columns, sep = "")
font <- paste("-f", font, sep = "")
command <- paste("enscript -q", header, orient, col.flag, font,
"<")
invisible(lpr(x, command = command, width = width - 2,
length = length - 2, ...))
}