pechter@dasys1.UUCP (Bill Pechter) (04/10/88)
Anyone have a good filter for an Okidata laser printer (hp l-jet compatible) which doesn't do newline expansion to carriage return newline. The darn thing's on a parallel port which rules out stty. -- Bill Pechter {sun!hoptoad,cmcl2!phri}!dasys1!pechter Lakewood Microsystems, 103 Governors Road, Lakewood NJ 08701 (201)370-0709 Evenings Big Electric Cat Public Access Unix, New York, NY
stacy@mcl.UUCP (Stacy L. Millions) (04/11/88)
In article <3799@dasys1.UUCP>, pechter@dasys1.UUCP (Bill Pechter) writes: > Anyone have a good filter for an Okidata laser printer (hp l-jet > compatible) which doesn't do newline expansion to carriage return > newline. The darn thing's on a parallel port which rules out stty. > I am assuming you are running on SCO Xenix. If you are stty will work even if the printer is on a parallel port. Remember that stty works on its standard input so the command must be like this: stty 9600 -onlcr </dev/lp1 (or whatever port you are using). If you are using the lp spooler to access this information than all you have to do is edit the /usr/spool/lp/interface/xxx (were xxx is the name of the printer) file and change the default stty command there. Note that in recent releases of SCO Xenix there is a hp interface file, you may still have to edit it to get it set up the way you like it, but it is a good start. --- "IBM Personal System/2. It's like having 256,000 crayons in one box." For those of you who are still doing your business reports with crayons! S. L. Millions ..!uunet!mcl!stacy
davidsen@steinmetz.ge.com (William E. Davidsen Jr) (04/13/88)
In article <3799@dasys1.UUCP> pechter@dasys1.UUCP (Bill Pechter) writes: | Anyone have a good filter for an Okidata laser printer (hp l-jet | compatible) which doesn't do newline expansion to carriage return | newline. The darn thing's on a parallel port which rules out stty. I have been running my lj+ on a parallel port for two years. Here is my filter, and since it can download fonts and characteristics, I include my interface routine and characteristics, too. I sent the characteristics files in binary mode, since they lack trailing newlines and have some control characters embedded. If you lack uudecode you is in DEEP trouble. The files names LJ.NNNxNN and LJ.NNNxNNm are formats. The NNN is the width, and the NN lines per page. A trailing 'm' means force a left margin of 1/2 inch. The land8 and land16 are landscape fonts, 16 cpi and 8 point. There are a few others, one 16 pitch 8 point and a reset. The interface routine loads them. Note that '-or' is the raw option and doesn't use filter. I don't know what you do for newline mapping, this has worked just fine for me. #!/bin/sh # shar: Shell Archiver (v1.15) # # Run the following text with /bin/sh to create: # lj.c # ljet.int # LJ.102x66 # LJ.102x66m # LJ.102x68m # LJ.132x100 # LJ.132x100m # LJ.132x90m # LJ.land16 # LJ.land8 # LJ.reset # echo "x - extracting lj.c (Text)" sed 's/^X//' << 'Dog Germs' > lj.c X/***************************************************************** X | lj - HP Laserjet output filter X |---------------------------------------------------------------- X | Author: Bill Davidsen 10-5-86 X | X | Adds returns before newlines and expands tabs X ****************************************************************/ X X#include <stdio.h> X X#define TRUE 1 X#define FALSE 0 X Xmain () X{ X register int ch, /* input character */ X column = 0, /* for tab expansion */ X wasret = FALSE; /* flag if last char was RETURN */ X X while ((ch = getchar ()) != EOF) X { /* check for newline, add return */ X switch (ch) { X case '\n': /* newline */ X if (!wasret) X putchar ('\r'); X case '\r': /* return */ X column = 0; X wasret = TRUE; X break; X case '\t': /* tab */ X while ((column++ & 7) != 7) X { /* tab via spaces */ X putchar (' '); X } X wasret = FALSE; X ch = ' '; /* output as blank */ X break; X default: /* anything else */ X column++; X wasret = FALSE; X } X X putchar (ch); X } X} Dog Germs chmod 0644 lj.c echo "x - extracting ljet.int (Text)" sed 's/^X//' << 'Dog Germs' > ljet.int X: X# %Z% %M% %I% %D% %Q% X# X# Copyright (C) The Santa Cruz Operation, 1985. X# This Module contains Proprietary Information of X# The Santa Cruz Operation, Microsoft Corporation X# and AT&T, and should be treated as Confidential. X# X#! HP Laserjet+ printer X# Xprinter=`basename $0` Xrequest=$1 Xname=$2 Xtitle=$3 Xcopies=$4 Xoptions=$5 Xshift; shift; shift; shift; shift X X# If it is necessary to change the baud rate or other stty settings for X# your serial printer insert a line similar to the following here: X# stty option ... 0<&1 X X# reset the printer Xecho "\033E\c" X X# border around the banner Xx="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" X X# the fifth field of the /etc/passwd file is assigned to the variable user Xuser=`sed -n "s/^$name:.*:.*:.*:\(.*\):.*:.*$/\1/p" /etc/passwd` X X# nhead gets the value of BANNERS or 1 by default Xnhead=`sed -n 's/^BANNERS=//p' /etc/default/lpd` X[ "$nhead" -ge 0 -a "$nhead" -le 5 ] || nhead=1 X X# print the banner $nhead times Xwhile [ "$nhead" -gt 0 ] Xdo X echo "$x\n" X banner "$name" X echo "$x\n" X [ "$user" ] && echo "User: $user\n" X echo "Request id: $request\n" X echo "Printer: $printer\n" X date X echo X [ "$title" ] && banner $title X echo "\f\c" X nhead=`expr $nhead - 1` Xdone | /local/bin/lj X X# set initial option values Xdispprog=/local/bin/lj X X# process option(s) Xfor opt in $options Xdo case $opt in X 16) # 16 pitch X cat /local/etc/LJ.132x100;; X 16m) # 16 pitch with 3/4" margin X cat /local/etc/LJ.132x100m;; X 16m8) # 16 pitch with margin, 8.5 point X cat /local/etc/LJ.132x90m;; X 12) # 12 point/pitch X cat /local/etc/LJ.102x66;; X m|12m) # 12 pitch with 3/4" margin X cat /local/etc/LJ.102x66m;; X r) #raw mode X dispprog=cat;; X esac Xdone X X# send the file(s) to the standard out $copies times Xwhile [ "$copies" -gt 0 ] Xdo filenum=1 X for file X do X nice -4 $dispprog <$file 2>&1 X if [ $filenum -lt $# ] X then echo "\f\c" X filenum=`expr $filenum + 1` X fi X done X copies=`expr $copies - 1` Xdone X X# reset the printer Xecho "\033E\c" X Xexit 0 Dog Germs chmod 0755 ljet.int echo "x - extracting LJ.102x66 (Binary)" sed 's/^X//' << 'Dog Germs' > ._temp_ Xbegin 600 LJ.102x66 X8&T4;*',Q,'8Q,D@;)FPT93<N-#5C-C9& X` Xend Dog Germs echo "uudecoding file LJ.102x66" uudecode < ._temp_ && rm -f ._temp_ chmod 0644 LJ.102x66 echo "x - extracting LJ.102x66m (Binary)" sed 's/^X//' << 'Dog Germs' > ._temp_ Xbegin 600 LJ.102x66m X=&T4;*',Q,'8Q,D@;)FPT93<N,#5C-C9&&R9A.4P` X` Xend Dog Germs echo "uudecoding file LJ.102x66m" uudecode < ._temp_ && rm -f ._temp_ chmod 0644 LJ.102x66m echo "x - extracting LJ.102x68m (Binary)" sed 's/^X//' << 'Dog Germs' > ._temp_ Xbegin 600 LJ.102x68m X=&T4;*',Q,'8Q,D@;)FPT93<N,#5C-CA&&R9A.4P` X` Xend Dog Germs echo "uudecoding file LJ.102x68m" uudecode < ._temp_ && rm -f ._temp_ chmod 0644 LJ.102x68m echo "x - extracting LJ.132x100 (Binary)" sed 's/^X//' << 'Dog Germs' > ._temp_ Xbegin 600 LJ.132x100 X9&T4;*',W=C$V+C5(&R9L,F4T+CAC,3(P1@`` X` Xend Dog Germs echo "uudecoding file LJ.132x100" uudecode < ._temp_ && rm -f ._temp_ chmod 0644 LJ.132x100 echo "x - extracting LJ.132x100m (Binary)" sed 's/^X//' << 'Dog Germs' > ._temp_ Xbegin 600 LJ.132x100m X?&T4;*',W=C$V+C5(&R9L,F4T+CAC,3(P1ALF83$R3``+ X` Xend Dog Germs echo "uudecoding file LJ.132x100m" uudecode < ._temp_ && rm -f ._temp_ chmod 0644 LJ.132x100m echo "x - extracting LJ.132x90m (Binary)" sed 's/^X//' << 'Dog Germs' > ._temp_ Xbegin 600 LJ.132x90m XB&T4;*',X+C5V,38N-4@;)FPR934N,S-C,3(P1ALF83$R3``` X` Xend Dog Germs echo "uudecoding file LJ.132x90m" uudecode < ._temp_ && rm -f ._temp_ chmod 0644 LJ.132x90m echo "x - extracting LJ.land16 (Binary)" sed 's/^X//' << 'Dog Germs' > ._temp_ Xbegin 600 LJ.land16 XD&T4;)FPQ;S@N,T0;*#A5&RAS,'`Q-BXV:#@N-78P<S!B,%0* X` Xend Dog Germs echo "uudecoding file LJ.land16" uudecode < ._temp_ && rm -f ._temp_ chmod 0644 LJ.land16 echo "x - extracting LJ.land8 (Binary)" sed 's/^X//' << 'Dog Germs' > ._temp_ Xbegin 600 LJ.land8 X=&T4;)FPQ3QLH.%4;*',P<#$P:#$R=C!S,&(S5`H` X` Xend Dog Germs echo "uudecoding file LJ.land8" uudecode < ._temp_ && rm -f ._temp_ chmod 0644 LJ.land8 echo "x - extracting LJ.reset (Binary)" sed 's/^X//' << 'Dog Germs' > ._temp_ Xbegin 600 LJ.reset X"&T44 X` Xend Dog Germs echo "uudecoding file LJ.reset" uudecode < ._temp_ && rm -f ._temp_ chmod 0644 LJ.reset exit 0 -- bill davidsen (wedu@ge-crd.arpa) {uunet | philabs | seismo}!steinmetz!crdos1!davidsen "Stupidity, like virtue, is its own reward" -me
jack@turnkey.TCC.COM (Jack F. Vogel) (04/15/88)
In article <10385@steinmetz.ge.com> davidsen@crdos1.UUCP (bill davidsen) writes: >In article <3799@dasys1.UUCP> pechter@dasys1.UUCP (Bill Pechter) writes: [ much text deleted....] >X# %Z% %M% %I% %D% %Q% >X# >X# Copyright (C) The Santa Cruz Operation, 1985. >X# This Module contains Proprietary Information of >X# The Santa Cruz Operation, Microsoft Corporation >X# and AT&T, and should be treated as Confidential. >X# > BILL!!!! What are you doing posting this interface ?? Don't you see the header here, it is copyrighted and says "Confidential", I can understand this kind of thing off in comp.binaries.ibm.pc but not here!!! You can get yourself in trouble, afterall SCO does read this group. I suggest you cancel and apologize for what I am sure was just an oversight on your part, then repost the rest of what was some valuable code. Take care, -- Jack F. Vogel Turnkey Computer Consultants, Costa Mesa, CA UUCP: ...{nosc|uunet}!turnkey!jack Internet: jack@turnkey.TCC.COM