OpenPrinting / hplip-printer-app

HPLIP Printer Application
Apache License 2.0
37 stars 10 forks source link

Every 2nd print to HP Laserjet prints raw postscript - leftover character in print? #17

Open vsessink opened 5 months ago

vsessink commented 5 months ago

Every 2nd print to my old but trusted HP Laserjet P2055dn prints raw postscript. To reproduce it, I first removed every snap instance of cups and the hplip printer app, just to make sure they weren't interfering; afterwards, I installed them:

snap remove cups --purge
snap remove hplip-printer-app --purge
snap install cups --edge # installs cups (edge) 2.4.7-5
snap install hplip-printer-app --edge # installs hplip-printer-app (edge) 3.22.10-3

I'm installing a printer with http://localhost:8000 Name HP LaserJet P2055dn Device: HP LaserJet P2055dn Network hp2055dn HPLIP (HP) Driver Name: Auto-Detect Driver [Add Printer]

This gives me a "Hp LaserJet P2055 Postscript" printer.

Now I turn off my printer (just to make sure there are no leftover print jobs), and turn it on again. I'm waiting a minute or so. I'm clicking "Print Test Page" and a nicely formatted test page will come out of the printer. Turning off the printer again. Waiting 60 seconds, printing another test page: prints fine.

Leaving the printer on will, however, print garbage (i.e. raw postscript). You'll have to push the "cancel" button on the printer to stop it from spitting out empty sheets of paper. After that, the next Test Page will print correctly.

Wild guesses: this looks like there is a leftover character somewhere at the end of the print job. But then again, as far as I know my printers, the Laserjet would then indicate it were busy with another print job. Simply using "echo hello|nc 9100" will print a page with "hello", then afterwards, the next Test Page will come out unharmed. Even trying the "hello" twice, the hello's match, i.e. it's not as if there is a spurious line feed somewhere in the system. Then again, these are all wild guesses, so take 'm with a grain of salt.

vsessink commented 5 months ago

As a sidenote: the same happens when I add the HP LJ P2055dn to the ps-printer-app.

vsessink commented 5 months ago

tcpdump shows:

·%-12345X@PJL
@PJL JOB NAME = "Test Page" DISPLAY = "4 valentyn Test Page"
@PJL SET USERNAME = "valentyn"
%%@PJL ENTER LANGUAGE = PostScript 
%!PS-Adobe-3.0
%%Invocation: gs -q -dNOPAUSE -dBATCH -dSAFER -dNOMEDIAATTRS -sstdout=? -sDEVICE=ps2write -dShowAcroForm -sOUTPUTFILE=? -sProcessColorModel=DeviceGray -sColorConversionStrategy=Gray -dLanguageLevel=2 -r600 -dCompressFonts=false -dNoT3CCITT -dNOINTERPOLATE ?
%%+ ? -f ?
%%HiResBoundingBox: 0 0 595.00 842.00
%%Creator: GPL Ghostscript 9550 (ps2write)
%%LanguageLevel: 2

Tried to find the code in Cups and/or hplip but couldn't. The Printer PPD file simply says:

*Protocols: TBCP PJL
*JCLBegin: "<1B>%-12345X@PJL JOB<0A>"
*JCLToPSInterpreter: "@PJL ENTER LANGUAGE = PostScript <0A>"
*JCLEnd: "<1B>%-12345X@PJL EOJ <0A><1B>%-12345X"
x-zvf commented 3 months ago

@vsessink I have the same printer and the same issue. I worked around it by using PCL3 instead of the "recommended" PostScript