HP Color LaserJet cp2025dn not using preferred driver

Bug #691766 reported by Marc Deslauriers
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
HPLIP
Confirmed
Undecided
Unassigned
hplip (Ubuntu)
Confirmed
Medium
Unassigned

Bug Description

Binary package hint: system-config-printer

In Natty (and in maverick also I think), letting system-config-printer auto detect and configure my HP Color LaserJet CP2025DN results in the following driver to be selected:

HP Color LaserJet CP2020 Series with Duplexer Postscript [en]

instead of the preferred driver:

HP Color LaserJet cp2025dn hpijs pcl3, 3.10.9 [en]

This results in print jobs coming out with numerous characters replaced with blank squares in the middle of text.

affects: system-config-printer (Ubuntu) → hplip (Ubuntu)
Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

This looks like a PostScript printer with a buggy interpreter, where the best workaround is to use the printer in PCL mode.

Note that the CP2020 Series PPD file HP has designed for all HP Color LaserJet CP202x printers which are PostScript printers as they have the same PostScript interpreter and differ only in hardware features like extra trays, network connector, duplex unit, .... You could probably observe this problem also on an HP Color LaserJet CP2020.

Using the printer in PCL mode surrounds the printer's PostScript interpreter and the printer's PCL mode does not have this bug (or gets only raster data and so rendering fonts is moved to the responsibility of the computer).

As long as there is no fix by HP use the PCL driver which you have manually selected.

As a workaround, we can remove the PostScript PPD file from the HPLIP package so that for the printer only the PCL PPD file is found and so the PCL mode is used.

For investigation of the bug please do a printout using the CP2020 PostScript PPD file and which shows the problem.For this printout follow the instructions in the "error_log" and "Capturing print job data" sections in https://wiki.ubuntu.com/DebuggingPrintingProblems. Also attach the original file(s) which you have printed. Please attach the files one by one, do not package or compress them.

Changed in hplip:
status: New → Incomplete
Changed in hplip (Ubuntu):
status: New → Incomplete
importance: Undecided → Medium
Revision history for this message
Marc Deslauriers (mdeslaur) wrote :

Here is a text file, that when printed with gedit, will display corruption. (all the "V" letters in the 3-4 last lines are replaced with white squares).

Attached, is original file, print job file, and log files.

Revision history for this message
Marc Deslauriers (mdeslaur) wrote :
Revision history for this message
Marc Deslauriers (mdeslaur) wrote :
Revision history for this message
Marc Deslauriers (mdeslaur) wrote :
Revision history for this message
Marc Deslauriers (mdeslaur) wrote :
Revision history for this message
Marc Deslauriers (mdeslaur) wrote :
Revision history for this message
Marc Deslauriers (mdeslaur) wrote :

Here is a scan of the corrupted page that came out of the printer.

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

I have tried to re-run the filter chain of your print job via the command line

cupsfilter -m application/vnd.cups-postscript -p cp2020.ps -o HPPhotoHalftone=Smooth -o HPGraphicsNeutralGrays=Black -o HPGraphicsRGB=sRGB -o HPTextRGB=sRGB -o HPBookletPageSize=Letter -o HPwmTextColor=Black -o noMirrorPrint -o HPServicesWeb=SupportAndTroubleshooting -o HPBookletScaling=Proportional -o HPEdgeControl=Normal -o HPPhotoRGB=sRGB -o HPGraphicsHalftone=Smooth -o InputSlot=Auto -o HPBookletPageOrder=Normal -o HPManualDuplexOrientation=DuplexNoTumble -o HPwmPages=AllPages -o HPPhotoNeutralGrays=ProcessBlack -o number-up=1 -o HPTextHalftone=Smooth -o HPwmTextMessage=Draft -o Duplex=None -o CMAndResolution=CMYKImageRET3600 -o noHPBookletFilter -o HPwmTextStyle=Medium -o noHPManualDuplexSwitch -o HPwmBrightness=Medium -o HPwmSwitch=Off -o MediaType=Unspecified -o noHPBookletBackCover -o HPTextNeutralGrays=Black -o PageSize=A4 -o HPwmTextAngle=Deg45 -o noHPRotate180 -o HPwmFontName=HelveticaB -o noHPManualDuplexPrintGuide -o HPwmFontSize=pt48 d00135-001 > out.ps

and displaying out.ps with Ghostscript ("gs", "gv", "evince"), does not show any problem with the characters. Also printing out.ps unfiltered via

nc -w1 <printer's IP> 9100 < out.ps

on an HP Color LaserJet CM3530 MFP does not show the problem.

So it really seems to be a problem of the printer's PostScript interpreter.

Can someone at HP have a look into this? Thank you.

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Output file of the previous comment.

Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for hplip (Ubuntu) because there has been no activity for 60 days.]

Changed in hplip (Ubuntu):
status: Incomplete → Expired
Revision history for this message
Marc Deslauriers (mdeslaur) wrote :

This was wasn't incomplete. Everything needed to fix the issue is here.

Changed in hplip (Ubuntu):
status: Expired → Confirmed
Changed in hplip:
status: Incomplete → Confirmed
Revision history for this message
Marc Deslauriers (mdeslaur) wrote :

This is still happening with Oneiric. The default driver that gets installed for this printer is wrong.

@Till: Could this model printer be changed to default to the PCL driver instead of postscript or something?

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Can you run the command

sudo /usr/lib/cups/backend/dnssd

and post the output here? Thanks.

Revision history for this message
Marc Deslauriers (mdeslaur) wrote :

Sure! Here you go:

DEBUG: Found "HP Color LaserJet CP2025dn (8209DF)._pdl-datastream._tcplocal"...
DEBUG: Found "HP Color LaserJet CP2025dn (8209DF)._printer._tcplocal"...
network dnssd://HP%20Color%20LaserJet%20CP2025dn%20(8209DF)._pdl-datastream._tcp.local/ "HP HP Color LaserJet CP2025dn" "HP Color LaserJet CP2025dn (8209DF)" "MFG:HP;MDL:Color LaserJet CP2025dn" ""
network dnssd://HP%20Color%20LaserJet%20CP2025dn%20(8209DF)._printer._tcp.local/ "HP HP Color LaserJet CP2025dn" "HP Color LaserJet CP2025dn (8209DF)" "MFG:HP;MDL:Color LaserJet CP2025dn" ""

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Strange, for this device ID I get always the PCL driver.

Can you do the following:

lpinfo -l -m > ppdlist.txt

and attach the output file to this bug? Thanks.

Revision history for this message
Marc Deslauriers (mdeslaur) wrote :
Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

I have compared your ppdlist.txt with mine and also done some tests with system-config-printer and I get always the PCL driver.

Can you do the following:

1. Run

system-config-printer --debug 2>&1 | tee logfile.txt

create a queue for your printer with automatic selection of the driver and attach logfile.txt.

2. Run

hp-info -i -d hp:/net/HP_Color_LaserJet_CP2025dn?ip=192.168.66.6 --id

and post the output here.

Revision history for this message
Marc Deslauriers (mdeslaur) wrote :
Revision history for this message
Marc Deslauriers (mdeslaur) wrote :

mdeslaur@aone:~$ hp-info -i -d hp:/net/HP_Color_LaserJet_CP2025dn?ip=192.168.66.6 --id

HP Linux Imaging and Printing System (ver. 3.11.7)
System Tray Status Service ver. 2.0

Copyright (c) 2001-9 Hewlett-Packard Development Company, LP
This software comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to distribute it
under certain conditions. See COPYING file for more details.

warning: Qt/PyQt 4 initialization failed.
error: hp-systray requires Qt4 GUI and DBus support. Exiting.
MFG:Hewlett-Packard;CMD:PJL,PML,PCLXL,POSTSCRIPT,PCL;MDL:HP Color LaserJet CP2025dn;CLS:PRINTER;DES:Hewlett-Packard Color LaserJet CP2025dn;MEM:MEM=55MB;COMMENT:RES=600x8;

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Thank you very much.

Can you attach your /etc/cupshelpers/preferreddrivers.xml file? Thanks.

Revision history for this message
Marc Deslauriers (mdeslaur) wrote :
Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Thank you, which version of the system-config-printer packages are you using?

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Can you replace your /etc/cupshelpers/preferreddrivers.xml file by the attached one? Does this make the driver choice for your printer correct?

Revision history for this message
Marc Deslauriers (mdeslaur) wrote :

ii system-config-printer-common 1.3.6+20110831-0ubuntu9.2 Printer configuration GUI
ii system-config-printer-gnome 1.3.6+20110831-0ubuntu9.2 Printer configuration GUI
ii system-config-printer-udev 1.3.6+20110831-0ubuntu9.2 Printer auto-configuration facility based on udev

No, the replacement preferreddrivers.xml still installed the Postscript driver...

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

Your s-c-p version is exactly the same as mine.

After replacing the file, did you stop and restart system-config-printer? Can you make sure that no processes are left which could cache any PPD selection data by killing all processes of s-c-p via

pkill -f system-config-printer.py
pkill -f scp-dbus-service.py

and after that start system-config-printer again and see whether now your printer gets set up with a PCL driver.

Revision history for this message
Marc Deslauriers (mdeslaur) wrote :

Sorry Till, no processes are left running, and I'm still getting the postscript driver.

Revision history for this message
goutam kodu (goutam-hplip) wrote :

Hi Marc,

Run command "sudo cat /usr/share/hplip/data/models/models.dat | grep -nA 50 hp_color_laserjet_cp2025dn | grep tech-class" in terminal.

It will display the string
21945-tech-class=LJColor,Postscript.

Where 21945 is the line number. Replace this string with "tech-class=LJColor" and save the file.

Next run hp-setup and check whether it is still picking up the PS ppd.

Let us know on the same.

Thanks & Regards,
Goutam Kodu

Revision history for this message
Marc Deslauriers (mdeslaur) wrote :

Sorry for the delay.

I have just tried removing the ,Postscript as suggested, but system-config-printer and hp-setup are _still_ finding a postscript driver first.

Attached is the log file from my hp-setup session.

Relevant info:
Device URI: hp:/net/HP_Color_LaserJet_CP2025dn?zc=NPI8209DF
Queue name: HP_Color_LaserJet_CP2025dn
PPD file: hplip:3/ppd/hplip/HP/hp-color_laserjet_cp2025dn-ps.ppd

Revision history for this message
goutam kodu (goutam-hplip) wrote :

Hi Marc,

cups / hplip search the ppd file for the printer based on the printer name and in ubuntu it always starts its search first in /usr/share/ppd/HP/ .
If the ppd for the printer doesn't exist there then it will dynamically generate the ppd file for the printer from /usr/share/cups/drv/hp/hpcups.drv file.

You need to delete the ppd hp-color_laserjet_cp2025dn-ps.ppd.gz from /usr/share/ppd/HP/ directory and try running "hp-setup" and check which ppd is selected by default.

Let us know on the same.

Thanks,
Goutam

Revision history for this message
Marc Deslauriers (mdeslaur) wrote :

So, I don't have a /usr/share/ppd/HP directory. I do have a /usr/share/ppd/hplip/HP directory, but it doesn't contain that particular ppd file.

I'm quite stumped, as I even tried searching for it with find / -name "hp-color_laserjet_cp2025dn-ps.ppd*" and that didn't turn up any results.

I don't quite know what to make of the "Found PPD file: hplip:3/ppd/hplip/HP/hp-color_laserjet_cp2025dn-ps.ppd"...could the printer itself be returning it?

Revision history for this message
goutam kodu (goutam-hplip) wrote :

Hi Marc,

This is bit surprising. May be you installed hplip-3.11.7 from ubuntu's synaptic package manager.
Printer cannot return the ppd file. Its the drivers job to select the correct ppd for the printer.
Can you install the latest hplip-3.11.10 from hplip-3.11.10.tar.gz. You can download the file from "http://voxel.dl.sourceforge.net/project/hplip/hplip/3.11.10/hplip-3.11.10.tar.gz".

After download follow the below steps:

1. Extract the source
    tar -xvf hplip-3.11.10.tar.gz

2.Run command "cat hplip-3.11.10/data/models/models.dat | grep -nA 50 hp_color_laserjet_cp2025dn | grep tech-class" in terminal.

It will display the string
21945-tech-class=LJColor,Postscript.

Replace this string with "tech-class=LJColor" (Remove the Postscript, the same as you had done in comment#28).
Save the file.

3.Run configure script
   ./configure --prefix=/usr

4.Run make
    make

5.Install
   sudo make install

Check if you find the ppd "hp-color_laserjet_cp2025dn-ps.ppd.gz" file in /usr/share/ppd/HP/ directory. If it is present, delete the ppd and next run "hp-setup" and check if its still picks the PS ppd.

Let me know on the same. If the issue is still the same post me the output of "hp-setup -g" command.

Thanks,
Goutam

Revision history for this message
Till Kamppeter (till-kamppeter) wrote :

In Ubuntu, the PostScript PPD files of HPLIP are supplied via a compressed PPD archive. The archive is

/usr/lib/cups/driver/hplip

You see its content via

/usr/lib/cups/driver/hplip list

and extract a PPD from it via

/usr/lib/cups/driver/hplip cat <PPD URI>

To temporarily deactivate it, do

sudo chmod -x /usr/lib/cups/driver/hplip

and reactivate it via

sudo chmod +x /usr/lib/cups/driver/hplip

Revision history for this message
Daniel Wagenaar (dawagenaar) wrote :

On my 2025dn, the "preferred" driver ("HP Color LaserJet cp2025dn hpijs pcl3, 3.10.9 [en]") makes for rasterized output that is not nearly as pretty as the output from the "HP Color LaserJet CP2020 Series with Duplexer Postscript [en]" driver. Yes, that driver plots some characters incorrectly, but that is easily fixed by changing the ppd file to force the use of level 2 postscript. Unfortunately, I lost that ppd file in my upgrade to Ubuntu 12.04.

Revision history for this message
Daniel Wagenaar (dawagenaar) wrote :

I found my old ppd file on my other computer! The only difference from the shipped version is the Postscript "LanguageLevel", which is set to "2" instead of "3". Fortunately, the PPD is supplied under an MIT license, so I was able to attach it to this comment in case it is useful to somebody else.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.