*BSD News Article 54022


Return to BSD News archive

Newsgroups: comp.unix.bsd.freebsd.misc
Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!simtel!chi-news.cic.net!newsfeed.internetmci.com!howland.reston.ans.net!ix.netcom.com!netcom.com!imgidata
From: imgidata@netcom.com (Robert Fagen)
Subject: Re: Hp laserjet 4L
Message-ID: <imgidataDHK019.1qH@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <Pine.BSF.3.91.951103130351.7968A-100000@taz.flnet.com>
Date: Sun, 5 Nov 1995 04:48:45 GMT
Lines: 66
Sender: imgidata@netcom.netcom.com

jones (jones@taz.flnet.com) wrote:
: I have a laserjet 4. in freebsd. I have been told that you can use the 
: line printer demon to access the printer. I went through all the bs 
: uncommenting out the original printcap file inserting the directory. ok 
: all this worked also unhasshed the lp statement in the config file. All 
: this is at the defaults.  Ok the system rebooted and everything seemed ok 
: untill i tried to print a file out. I used lpr filename, the file went 
: into the spooler and was qued.  Ok the printer fired up and I thought it 
: was goin to print, but alas it only printed blank pages. 

: 	If anyone else has gone through this I would appreciate your 
: wisdom. Ohh the system is intel based pc. 

: 						Thanks in adv.
: 					        jones@taz.flnet.com


I think the problem is CR/LF mapping. I have the same problem. I wrote 
a filter to reference in the /etc/printcap file. I hope someone else will
follow up with a better way to deal with this, but if not, here's the
code:
---------------------------------------------------------------------------
#include <stdio.h>

main()
{
char c;
while(!feof(stdin))
  {
    c=getchar();
    if (feof(stdin)) continue;
    if (c==0x0a || c==0x0c) /* if LF or FF, dump a CR after the char */
      {
        putchar(c);
        putchar(0x0d);
      }
    else putchar(c); /* otherwise, just dump out the character */
  }
putchar(0x04); /* make sure any postscript files get closed */
}
---------------------------------------------------------------------------
and here's my printcap:
---------------------------------------------------------------------------
#       @(#)printcap    5.3 (Berkeley) 6/30/90

lp|local line printer:\
        :lp=/dev/lp:sd=/var/spool/lpd:lf=/var/log/lpd-errs:\
        :of=/usr/local/bin/addctlm:
---------------------------------------------------------------------------

I also have a link from /dev/lp->/dev/lpt0

Like I said, this is how I got it to work, no warranty express or implied
that this isn't a dorky/inefficient/stupid/security-breaching way to do it :)

PS. I also have renamed lpr to lpr.0 and have a shell script that calls
it with '-h' to eliminate burst pages. It's just me, after all, I know who
printed what

Rob

-- 
------------------------------------------------------------------------
Rob Fagen            |                          | #include <clever.sig>
voice 415-432-8101   | I only represent myself  | #include <witty.quote>
   "Sad, Demented But Social: it's not just for breakfast any more"
                     | OB-URL: http://sdbs.org/ |