1# 2# CDDL HEADER START 3# 4# The contents of this file are subject to the terms of the 5# Common Development and Distribution License, Version 1.0 only 6# (the "License"). You may not use this file except in compliance 7# with the License. 8# 9# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10# or http://www.opensolaris.org/os/licensing. 11# See the License for the specific language governing permissions 12# and limitations under the License. 13# 14# When distributing Covered Code, include this CDDL HEADER in each 15# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16# If applicable, add the following below this CDDL HEADER, with the 17# fields enclosed by brackets "[]" replaced with your own identifying 18# information: Portions Copyright [yyyy] [name of copyright owner] 19# 20# CDDL HEADER END 21# 22#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.2 */ 23Source code in this directory is for the program that can be used to send files 24to printers that understand PostScript. 25 26I've added code that lets you split the program into separate read and write 27processes (the -R2 option), supports an interactive mode (-i option), suppresses 28status queries while the files are being transmitted to the printer (-q option), 29and runs in a mode that can help if flow control doesn't appear to be working 30properly (-S option). All the options are described in the man page. In addition 31The parsing of lines returned by the printer has been improved and should do a 32decent job with anything that comes its way. 33 34By default the program runs much like the original version - a single process with 35status queries sent every block or two. It's not how to get the best performance, 36but using a single read/write process may be important if you're running lots of 37printers under a single userid. Four things can help improve performance, and all 38can be set by command line options: 39 40 1: Use separate read and write processes. The -R2 option gets it or if you want 41 it as the default initialize splitme (near line 132 in postio.c) to TRUE before 42 compiling postio. 43 44 2: Use a large input buffer. The default size is 2048 bytes, but it can be set 45 to whatever you want on the command line using the -B option. If you want a 46 larger default buffer change the definition of BLOCKSIZE (near line 204 in 47 postio.h) before you compile postio. 48 49 3: Quiet mode prevents the transmission of status requests (ie. ^Ts) while files 50 are being sent to the printer. You can turn off the status query stuff with 51 the -q option or if you want it as the default initialize quiet (near line 122 52 in postio.c) to TRUE before compiling the program. 53 54 4: Avoid using the -S option. It's real slow and I thought some about leaving it 55 out, but it's needed at a few sites. Seems to help most with printers connected 56 to UTS systems using DACUs and Datakit PVCs. 57 58One possible strategy would be to have the spooler run postio as a single process 59on all small printers (eg. LaserWriters or PS-800s) and use two processes on faster 60printers like the DataProducts 2665 or QMS PS-2400. 61 62A typical command line might look something like, 63 64 postio -l /dev/tty?? -b 9600 -L log file1 file2 file3 65 66where /dev/tty?? is the line that's connected to the printer, 9600 (or B9600) is 67the baud rate, and log is a file used to record printer status. You should always 68use the -l option to select the printer line, and if you don't choose a log file 69everything coming back from the printer goes to stderr. The following command line 70accomplishes the same thing, but runs postio as separate read and write processes, 71 72 postio -R2 -l/dev/tty?? -b9600 -Llog file1 file2 file3 73 74Check the man page for more examples. 75 76