PCL on Hp2100 series Laserjet

Hi. I’m very inexperienced with Linux, but I’m trying to learn by creating a server that uses a copy of an old application that prints documents containing PCL to an HP 2100. I’ve used several different drivers (from HPLIP and from the ghostscript drivers), but they all seem to do the same thing. Instead of using the PCL code, the PCL prints on the page. I would appreciate any help. Here’s the log file of one of my runs:

D [19/Jul/2012:13:58:24 -0500] cupsdAuthorize: No authentication data provided.
D [19/Jul/2012:13:58:24 -0500] cupsdReadClient: 12 1.1 Send-Document 1
D [19/Jul/2012:13:58:24 -0500] Send-Document ipp://localhost:631/printers/HP1
D [19/Jul/2012:13:58:24 -0500] cupsdIsAuthorized: requesting-user-name=“inf”
D [19/Jul/2012:13:58:24 -0500] [Job 29] Auto-typing file…
D [19/Jul/2012:13:58:24 -0500] [Job 29] Request file type is text/plain.
D [19/Jul/2012:13:58:24 -0500] cupsdMarkDirty(----J-)
D [19/Jul/2012:13:58:24 -0500] cupsdSetBusyState: newbusy=“Active clients and dirty files”, busy=“Active clients and dirty files”
I [19/Jul/2012:13:58:24 -0500] [Job 29] File of type text/plain queued by “inf”.
I [19/Jul/2012:13:58:24 -0500] [Job 29] Adding end banner page “none”.
D [19/Jul/2012:13:58:24 -0500] cupsdMarkDirty(----J-)
D [19/Jul/2012:13:58:24 -0500] cupsdSetBusyState: newbusy=“Active clients and dirty files”, busy=“Active clients and dirty files”
D [19/Jul/2012:13:58:24 -0500] cupsdMarkDirty(----J-)
D [19/Jul/2012:13:58:24 -0500] cupsdSetBusyState: newbusy=“Active clients and dirty files”, busy=“Active clients and dirty files”
D [19/Jul/2012:13:58:24 -0500] cupsdSetBusyState: newbusy=“Active clients and dirty files”, busy=“Active clients and dirty files”
D [19/Jul/2012:13:58:24 -0500] Discarding unused printer-state-changed event…
D [19/Jul/2012:13:58:24 -0500] [Job 29] job-sheets=none,none
D [19/Jul/2012:13:58:24 -0500] [Job 29] argv[0]=“HP1”
D [19/Jul/2012:13:58:24 -0500] [Job 29] argv[1]=“29”
D [19/Jul/2012:13:58:24 -0500] [Job 29] argv[2]=“inf”
D [19/Jul/2012:13:58:24 -0500] [Job 29] argv[3]=“xlp.3205”
D [19/Jul/2012:13:58:24 -0500] [Job 29] argv[4]=“1”
D [19/Jul/2012:13:58:24 -0500] [Job 29] argv[5]=“finishings=3 nb number-up=1 job-uuid=urn:uuid:7dfb2e21-2406-3be3-4b2a-85bee21533e2 job-originating-host-name=localhost time-at-creation=1342724304 time-at-processing=1342724304 AP_D_InputSlot=”
D [19/Jul/2012:13:58:24 -0500] [Job 29] argv[6]="/var/spool/cups/d00029-001"
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[0]=“CUPS_CACHEDIR=/var/cache/cups”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[1]=“CUPS_DATADIR=/usr/share/cups”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[2]=“CUPS_DOCROOT=/usr/share/cups/webcontent”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[3]=“CUPS_FONTPATH=/usr/share/cups/fonts”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[4]=“CUPS_REQUESTROOT=/var/spool/cups”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[5]=“CUPS_SERVERBIN=/usr/lib/cups”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[6]=“CUPS_SERVERROOT=/etc/cups”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[7]=“CUPS_STATEDIR=/var/run/cups”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[8]=“HOME=/var/spool/cups/tmp”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[9]=“PATH=/usr/lib/cups/filter:/usr/bin:/usr/sbin:/bin:/usr/bin”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[10]=“SERVER_ADMIN=root@rex507Linux”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[11]=“SOFTWARE=CUPS/1.5.0”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[12]=“TMPDIR=/var/spool/cups/tmp”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[13]=“USER=root”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[14]=“CUPS_SERVER=/var/run/cups/cups.sock”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[15]=“CUPS_ENCRYPTION=IfRequested”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[16]=“IPP_PORT=631”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[17]=“CHARSET=utf-8”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[18]=“LANG=en_US.UTF-8”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[19]=“PPD=/etc/cups/ppd/HP1.ppd”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[20]=“RIP_MAX_CACHE=128m”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[21]=“CONTENT_TYPE=text/plain”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[22]=“DEVICE_URI=hp:/net/HP_LaserJet_2100_Series?ip=193.0.0.10”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[23]=“PRINTER_INFO=HP_LaserJet_2100”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[24]=“PRINTER_LOCATION=”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[25]=“PRINTER=HP1”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[26]=“PRINTER_STATE_REASONS=none”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[27]=“CUPS_FILETYPE=document”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[28]=“FINAL_CONTENT_TYPE=printer/HP1”
D [19/Jul/2012:13:58:24 -0500] [Job 29] envp[29]=“AUTH_I****”
I [19/Jul/2012:13:58:24 -0500] [Job 29] Started filter /usr/lib/cups/filter/texttops (PID 3217)
I [19/Jul/2012:13:58:24 -0500] [Job 29] Started filter /usr/lib/cups/filter/pstops (PID 3218)
I [19/Jul/2012:13:58:24 -0500] [Job 29] Started filter /usr/lib/cups/filter/pstoraster (PID 3219)
I [19/Jul/2012:13:58:24 -0500] [Job 29] Started filter /usr/lib/cups/filter/hpcups (PID 3220)
I [19/Jul/2012:13:58:24 -0500] [Job 29] Started backend /usr/lib/cups/backend/hp (PID 3221)
D [19/Jul/2012:13:58:24 -0500] Discarding unused job-state-changed event…
D [19/Jul/2012:13:58:24 -0500] Returning IPP successful-ok for Send-Document (ipp://localhost:631/printers/HP1) from localhost
D [19/Jul/2012:13:58:24 -0500] cupsdSetBusyState: newbusy=“Printing jobs and dirty files”, busy=“Active clients and dirty files”
D [19/Jul/2012:13:58:24 -0500] cupsdReadClient: 12 WAITING Closing on EOF
D [19/Jul/2012:13:58:24 -0500] cupsdCloseClient: 12
D [19/Jul/2012:13:58:24 -0500] cupsdSetBusyState: newbusy=“Printing jobs and dirty files”, busy=“Printing jobs and dirty files”
D [19/Jul/2012:13:58:24 -0500] [Job 29] Page = 612x792; 18,14 to 594,778
D [19/Jul/2012:13:58:24 -0500] [Job 29] ppd->num_fonts = 35
D [19/Jul/2012:13:58:24 -0500] [Job 29] ppd->fonts[0] = AvantGarde-Book
…Fonts removed
D [19/Jul/2012:13:58:24 -0500] [Job 29] ppd->num_fonts = 35
D [19/Jul/2012:13:58:24 -0500] [Job 29] ppd->fonts[0] = AvantGarde-Book
… fonts removed (note this list shows up 2 times).
D [19/Jul/2012:13:58:25 -0500] PID 3217 (/usr/lib/cups/filter/texttops) exited with no errors.
D [19/Jul/2012:13:58:25 -0500] [Job 29] Page = 612x792; 18,14 to 594,778
D [19/Jul/2012:13:58:25 -0500] [Job 29] slow_collate=0, slow_duplex=0, slow_order=0
D [19/Jul/2012:13:58:25 -0500] [Job 29] Before copy_comments - %!PS-Adobe-3.0
D [19/Jul/2012:13:58:25 -0500] [Job 29] %!PS-Adobe-3.0
D [19/Jul/2012:13:58:25 -0500] [Job 29] %%BoundingBox: 0 0 612 792
D [19/Jul/2012:13:58:25 -0500] [Job 29] %cupsRotation: 0
D [19/Jul/2012:13:58:25 -0500] [Job 29] %%Creator: texttops/CUPS v1.5.0
D [19/Jul/2012:13:58:25 -0500] [Job 29] %%CreationDate: Thu 19 Jul 2012 01:58:24 PM CDT
D [19/Jul/2012:13:58:25 -0500] [Job 29] %%Title: (xlp.3205)
D [19/Jul/2012:13:58:25 -0500] [Job 29] %%For: (inf)
D [19/Jul/2012:13:58:25 -0500] [Job 29] %%Pages: (atend)
D [19/Jul/2012:13:58:25 -0500] [Job 29] %%DocumentNeededResources: font Monospace-Bold
D [19/Jul/2012:13:58:25 -0500] [Job 29] %%+ font Monospace
D [19/Jul/2012:13:58:25 -0500] [Job 29] %%DocumentSuppliedResources: procset texttops 1.1 0
D [19/Jul/2012:13:58:25 -0500] [Job 29] %%+ font Monospace-Bold
D [19/Jul/2012:13:58:25 -0500] [Job 29] %%+ font Monospace
D [19/Jul/2012:13:58:25 -0500] [Job 29] %%EndComments
D [19/Jul/2012:13:58:25 -0500] [Job 29] Before copy_prolog - %%BeginProlog
D [19/Jul/2012:13:58:25 -0500] [Job 29] Before copy_setup - %%Page: 1 1
D [19/Jul/2012:13:58:25 -0500] [Job 29] Before page loop - %%Page: 1 1
D [19/Jul/2012:13:58:25 -0500] [Job 29] Copying page 1…
D [19/Jul/2012:13:58:25 -0500] [Job 29] pagew = 576.0, pagel = 764.0
D [19/Jul/2012:13:58:25 -0500] [Job 29] bboxx = 0, bboxy = 0, bboxw = 612, bboxl = 792
D [19/Jul/2012:13:58:25 -0500] [Job 29] PageLeft = 18.0, PageRight = 594.0
D [19/Jul/2012:13:58:25 -0500] [Job 29] PageTop = 778.0, PageBottom = 14.0
D [19/Jul/2012:13:58:25 -0500] [Job 29] PageWidth = 612.0, PageLength = 792.0
D [19/Jul/2012:13:58:25 -0500] [Job 29] Copying page 2…
D [19/Jul/2012:13:58:25 -0500] [Job 29] pagew = 576.0, pagel = 764.0
D [19/Jul/2012:13:58:25 -0500] [Job 29] bboxx = 0, bboxy = 0, bboxw = 612, bboxl = 792
D [19/Jul/2012:13:58:25 -0500] [Job 29] PageLeft = 18.0, PageRight = 594.0
D [19/Jul/2012:13:58:25 -0500] [Job 29] PageTop = 778.0, PageBottom = 14.0
D [19/Jul/2012:13:58:25 -0500] [Job 29] PageWidth = 612.0, PageLength = 792.0
D [19/Jul/2012:13:58:25 -0500] [Job 29] Wrote 2 pages…
D [19/Jul/2012:13:58:25 -0500] PID 3218 (/usr/lib/cups/filter/pstops) exited with no errors.
I [19/Jul/2012:13:58:25 -0500] [Job 29] Starting GPL Ghostscript 9.00…
D [19/Jul/2012:13:58:25 -0500] [Job 29] Set job-printer-state-message to “Starting GPL Ghostscript 9.00…”, current level=INFO
D [19/Jul/2012:13:58:25 -0500] [Job 29] Running /usr/bin/gs -dQUIET -dPARANOIDSAFER -dNOPAUSE -dBATCH -dDisableFAPI=true -dNOMEDIAATTRS -sDEVICE=cups -sstdout=%stderr -sOUTPUTFILE=%stdout -c -f -_
D [19/Jul/2012:13:58:25 -0500] Discarding unused job-progress event…
D [19/Jul/2012:13:58:25 -0500] Discarding unused printer-state-changed event…
I [19/Jul/2012:13:58:25 -0500] [Job 29] Start rendering…
D [19/Jul/2012:13:58:25 -0500] [Job 29] Set job-printer-state-message to “Start rendering…”, current level=INFO
D [19/Jul/2012:13:58:25 -0500] Discarding unused job-progress event…
D [19/Jul/2012:13:58:25 -0500] Discarding unused printer-state-changed event…
I [19/Jul/2012:13:58:25 -0500] [Job 29] Processing page 1…
D [19/Jul/2012:13:58:25 -0500] [Job 29] Set job-printer-state-message to “Processing page 1…”, current level=INFO
D [19/Jul/2012:13:58:25 -0500] Discarding unused job-progress event…
D [19/Jul/2012:13:58:25 -0500] Discarding unused printer-state-changed event…
D [19/Jul/2012:13:58:25 -0500] [Job 29] PAGE: 1 1STATE: +connecting-to-device
D [19/Jul/2012:13:58:25 -0500] Discarding unused job-progress event…
D [19/Jul/2012:13:58:25 -0500] [Job 29] STATE: -connecting-to-device
D [19/Jul/2012:13:58:25 -0500] [Job 29] STATE: -media-empty-error,media-jam-error,hplip.plugin-error,cover-open-error,toner-empty-error,other
I [19/Jul/2012:13:58:25 -0500] [Job 29] Processing page 2…
D [19/Jul/2012:13:58:25 -0500] [Job 29] Set job-printer-state-message to “Processing page 2…”, current level=INFO
D [19/Jul/2012:13:58:25 -0500] Discarding unused job-progress event…
D [19/Jul/2012:13:58:25 -0500] Discarding unused printer-state-changed event…
D [19/Jul/2012:13:58:26 -0500] [Job 29] PAGE: 2 1INFO: Processing page 3…
D [19/Jul/2012:13:58:26 -0500] Discarding unused job-progress event…
I [19/Jul/2012:13:58:26 -0500] [Job 29] Rendering completed
D [19/Jul/2012:13:58:26 -0500] [Job 29] Set job-printer-state-message to “Rendering completed”, current level=INFO
D [19/Jul/2012:13:58:26 -0500] Discarding unused job-progress event…
D [19/Jul/2012:13:58:26 -0500] Discarding unused printer-state-changed event…
D [19/Jul/2012:13:58:26 -0500] PID 3220 (/usr/lib/cups/filter/hpcups) exited with no errors.
D [19/Jul/2012:13:58:26 -0500] PID 3219 (/usr/lib/cups/filter/pstoraster) exited with no errors.
I [19/Jul/2012:13:58:34 -0500] [Job 29] ready to print
D [19/Jul/2012:13:58:34 -0500] [Job 29] Set job-printer-state-message to “ready to print”, current level=INFO
D [19/Jul/2012:13:58:34 -0500] Discarding unused job-progress event…
D [19/Jul/2012:13:58:34 -0500] Discarding unused printer-state-changed event…
D [19/Jul/2012:13:58:35 -0500] PID 3221 (/usr/lib/cups/backend/hp) exited with no errors.
D [19/Jul/2012:13:58:35 -0500] Discarding unused job-completed event…
I [19/Jul/2012:13:58:35 -0500] [Job 29] Job completed.
D [19/Jul/2012:13:58:35 -0500] cupsdMarkDirty(----J-)
D [19/Jul/2012:13:58:35 -0500] cupsdSetBusyState: newbusy=“Printing jobs and dirty files”, busy=“Printing jobs and dirty files”
D [19/Jul/2012:13:58:35 -0500] cupsdSetBusyState: newbusy=“Printing jobs and dirty files”, busy=“Printing jobs and dirty files”
D [19/Jul/2012:13:58:35 -0500] Discarding unused printer-state-changed event…
D [19/Jul/2012:13:58:36 -0500] [Job 29] Unloading…
I [19/Jul/2012:13:58:55 -0500] Saving job.cache…
D [19/Jul/2012:13:58:55 -0500] cupsdSetBusyState: newbusy=“Not busy”, busy=“Printing jobs and dirty files”
D [19/Jul/2012:13:58:55 -0500] Report: clients=0
D [19/Jul/2012:13:58:55 -0500] Report: jobs=18
D [19/Jul/2012:13:58:55 -0500] Report: jobs-active=0
D [19/Jul/2012:13:58:55 -0500] Report: printers=4
D [19/Jul/2012:13:58:55 -0500] Report: printers-implicit=0
D [19/Jul/2012:13:58:55 -0500] Report: stringpool-string-count=6790
D [19/Jul/2012:13:58:55 -0500] Report: stringpool-alloc-bytes=10672
D [19/Jul/2012:13:58:55 -0500] Report: stringpool-total-bytes=126816
D [19/Jul/2012:14:46:55 -0500] cupsdAcceptClient: 12 from localhost:631 (IPv6)
D [19/Jul/2012:14:46:55 -0500] Report: clients=1
D [19/Jul/2012:14:46:55 -0500] Report: jobs=18
D [19/Jul/2012:14:46:55 -0500] Report: jobs-active=0
D [19/Jul/2012:14:46:55 -0500] Report: printers=4
D [19/Jul/2012:14:46:55 -0500] Report: printers-implicit=0
D [19/Jul/2012:14:46:55 -0500] Report: stringpool-string-count=6790
D [19/Jul/2012:14:46:55 -0500] Report: stringpool-alloc-bytes=10672
D [19/Jul/2012:14:46:55 -0500] Report: stringpool-total-bytes=126816
D [19/Jul/2012:14:46:55 -0500] cupsdReadClient: 12 POST /admin/ HTTP/1.1
D [19/Jul/2012:14:46:55 -0500] cupsdSetBusyState: newbusy=“Active clients”, busy=“Not busy”

Two thoughts: have you found a 2100 driver? If so, there is a good chance that it defaults to Postscropt because Linux normally uses Postscript.

If you haven’t found a 2100 driver, you probably won’t find one which uses PCL.

As far as I can recall, when I was using an HP printer with PCL in 2000, I used PCL with DOS and Windows but on Linux the printer driver converted the Postscript to PCL. I remember being staggered at the quality improvement on Linux from what was at the time a six year old printer.

On 07/19/2012 04:36 PM, john hudson wrote:
>
> Two thoughts: have you found a 2100 driver? If so, there is a good
> chance that it defaults to Postscropt because Linux normally uses
> Postscript.
>
> If you haven’t found a 2100 driver, you probably won’t find one which
> uses PCL.
>
> As far as I can recall, when I was using an HP printer with PCL in
> 2000, I used PCL with DOS and Windows but on Linux the printer driver
> converted the Postscript to PCL. I remember being staggered at the
> quality improvement on Linux from what was at the time a six year old
> printer.

You do not need to use hplip. The standard drivers include ones for HP LaserJet
2100/2200. I used a 2200 until recently. The PCL drivers worked better than the
Postscript ones due to the slowness of the CPU on the printer in rasterizing
Postscript.

Well, I used the generic ghostscript PCL drivers (I’ve tried versions 3,4, and 5), but they seem to make lots of extra line breaks. The HPLIP PCL drivers that are labeled specifically for the printer model are close, but they do something so that all the PCL that the application program puts in prints on the page instead of actually doing what it is supposed to do (e.g. bold or print using the stored barcode font that I have loaded in the printer).

I have used both the HP PCL driver and the ones I loaded with the ghostscript drivers but no luck. I also tried the generic one that got installed with the OS, but it has a similar problem. It’s almost like the print filter program is stripping out the escape that “turns on” the PCL command so that it just prints the characters after the escape instead of evaluating it as a command.

On 2012-07-20 02:06, gdv2500 wrote:
>
> I have used both the HP PCL driver and the ones I loaded with the
> ghostscript drivers but no luck. I also tried the generic one that got
> installed with the OS, but it has a similar problem. It’s almost like
> the print filter program is stripping out the escape that “turns on” the
> PCL command so that it just prints the characters after the escape
> instead of evaluating it as a command.

I don’t know if I understood you correctly. I think that you want to print files that are
already coded in PCL; if that’s the case, you need to print them to the “raw” interface. CUPS
is treating those files as text.

http://localhost:631/help/options.html?QUERY=raw%20printer#RAW

+++····················


*Raw or Unfiltered Output*

The -o raw option allows you to send files directly to a printer without filtering. This is
sometimes required when printing from applications that provide their own "printer drivers" for
your printer:

lp -o raw filename
lpr -o raw filename

The -l option can also be used with the lpr command to send files directly to a printer:

lpr -l filename

····················+±


Cheers / Saludos,

Carlos E. R.
(from 11.4 x86_64 “Celadon” at Telcontar)

Thanks, Carlos. The only issue now seems to be that the raw option puts in an extra top and bottom margin for some reason. It looks something like 2 lines at the top and maybe 2 at the bottom. It’s now very close though. I’m thinking there is some program or script in the application that must have set the top and bottom margins and page length, so I’m now trying to see if that is the case.

On 2012-07-20 18:46, gdv2500 wrote:
>
> Thanks, Carlos. The only issue now seems to be that the raw option puts
> in an extra top and bottom margin for some reason. It looks something
> like 2 lines at the top and maybe 2 at the bottom. It’s now very close
> though. I’m thinking there is some program or script in the application
> that must have set the top and bottom margins and page length, so I’m
> now trying to see if that is the case.

When you use the “raw driver”, which is no driver at all, cups has no control of margins, paper
size, etc. Everything is done in the application that created those files.

Maybe you can edit those files, if you can hand-edit PCL files. With postscript it can be done,
I have no idea about PCL.


Cheers / Saludos,

Carlos E. R.
(from 11.4 x86_64 “Celadon” at Telcontar)