Date: Thu, 25 Sep 1997 11:41:46 +0200 From: Robin Huiser <robinh@htsa.hva.nl> To: rknebel@mail.microserve.net Cc: freebsd-questions@FreeBSD.ORG Subject: Re: printer Message-ID: <342A31D8.5ECDCE4F@htsa.hva.nl> References: <199709242157.HAA25783@smmcroute.smmc.qld.edu.au> <19970924195634.48713@my.domain>
next in thread | previous in thread | raw e-mail | index | archive | help
rknebel@mail.microserve.net wrote: > Hi, > I have freebsd 2.2.2 and am trying to get my printer to work. > I have a HP 660c. > Whenenver I try to print something the printer prints out three blank > pages and then stops. > Can anyone get me started on a solution? > Thanks Alot > > -- > Rick Knebel > rknebel@mail.microserve.net Hello Rick! It seems that we have the same printer! I have written a few scripts allowing you to print postscript directly to your printer! It also recognises if you are sending plain text, binary printer-format or postscript! First create in /etc/printcap the following line: deskjet|lp|HP Deskjet 694-C bubblejet printer:\ :sh:sd=/var/spool/lpd/deskjet:lp=/dev/lpt0:mx#0:\ :if=/usr/local/libexec/if-deskjet: * It tells FreeBSD that you have a printer connected to /dev/lpt0 (LPT1). * Your spool-directory is /var/spool/lpd/deskjet (CREATE IT!!!) * Because postscript jobs are sometimes of a very *LARGE*,size (For example if you print a picture with xv), I have set the mx-field to 0. (No size limits when printing a job). * The filter is in /usr/local/libexec/if-deskjet (CREATE IT!!!) Filter: if-deskjet -- BEGIN HERE -- #!/bin/sh # # if-hp - Postscript level 3 and text input filter for lpd # Installed in /usr/local/libexec/if-hp # # Textmode: simply copies stdin to stdout. Ignores all filter arguments # Postscript: run gs to convert the text you want to print # Add a formfeed after each job # # Some handy functions # fatal() { echo "$@" 1>\&2 exit 2 } # # Set LF to LF+CR # printf "\033\&k2G" || fatal "Cannot initialize printer" # # Read first two characters of the file # read first_line first_two_chars=`expr "$first_line" : '\(..\)'` if [ "$first_two_chars" = '%!' ]; then # # It's postscript; use Ghostscript to scan-convert and print it # /usr/local/bin/gs -dSAFER -dNOPAUSE -sPAPERSIZE=a4 -q -sDEVICE=cdj550 -sOutpu tFile=- - && exit 0 else # # Plan text or HP/PCL. so just print it directly; print a form # at the end to eject the last page # echo $first_line && cat && printf "\f" && exit 0 || exit 2 fi exit 2 -- CUT HERE -- Well, if you have any questions, you know where to find me! Greets, Robin Huiser ,,, (o o) ()========================oOO==(_)==OOo==========================() Robin Huiser HVA Faculteit Electrotechniek & Informatica E-mail: robinh@htsa.hva.nl Important Unix command: echo '[q]sa[ln0=aln256%Pln256/snlbx]sb3135071790101768542287578439snlbxq' | dc
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?342A31D8.5ECDCE4F>