mounaiban / captdriver

Driver for Canon CAPT printers
GNU General Public License v3.0
89 stars 16 forks source link

Canon LBP-2900 prints with low density #33

Open artvolk opened 10 months ago

artvolk commented 10 months ago

Hi, first of all, thanks for the hard work on supporting obscure hardware! :)

I've got the driver working Ubuntu 23.10 x86_64 (running in Proxmox) (as a side note on Alpine 3.19 armhf (Raspberry Pi W) I've run into this issue: https://github.com/mounaiban/captdriver/issues/8).

The problem I have though is that all prints via CUPS and captdriver have less density (black text is gray) compared to printing via MacOS or Windows drivers with the printer attached directly via USB. I can observe this behavior for both vector PDFs or documents printed from LibreOffice.

I've had a quick look into CUPS options and captdriver source code, but haven't found any knobs to turn. Did I miss something obvious?

Thanks in advance!

mounaiban commented 8 months ago

You're not alone in finding CUPS printouts a little lighter than expected. There's a comment, on either Alexey's original repo or mine, that mentions this too. However, I can't seem to find it at time of writing.

The only printer-related control for darkness we know is Toner Density, this is communicated to the printer via the 0xD0A0 command, bytes 8-11.

Otherwise I'm suspecting differences in raster image processors; GhostScript (which CUPS uses as an RIP) may have a lighter gamma curve than the proprietary RIPs used in macOS and Windows. I haven't been able to verify this claim, but you might be able to if you have old, low spec printers that are supported in Linux, Mac and Windows.

Emphasis on old, because I suspect many new printers to have built-in RIPs and therefore produce the same results regardless of the OS the job comes from.

artvolk commented 8 months ago

Thanks for the response!

goatastronaut0212 commented 4 months ago

I also have the same problem in this, but I don't have many clues about this. Is there any way to fix this issue?

artvolk commented 3 months ago

I haven't find any so far.

Geergon commented 1 week ago

I haven't find any so far.

I don't know if this is still relevant for you, but I want to share how I fixed it. I have a lbp2900 printer and it also printed at a very low density compared to Windows. I decided to try installing the official driver from Canon (https://www.canon-europe.com/support/consumer/products/printers/i-sensys/lbp-series/i-sensys-lbp2900.html?type=drivers&detailId=tcm :13-1057853&os=Linux%20(64-bit)&language=en&productTcmUri=tcm:13-727036). I followed the installation instructions and it really worked. It prints exactly the same as it prints on Windows. Also in the settings there is a choice of density from 1 to 5. But there is one nuance with the installation of this driver, it is more difficult to install than captdriver-git, since it will not work without such outdated things as libpopt0:i386 and i586-libtiff4. I don't know about other distributions, but on Fedora linux 41 I was able to find and install them (https://rpmfind.net/linux/fedora/linux/releases/41/Everything/x86_64/os/Packages/p/popt-1.19-7.fc41.i686.rpm) and (https://rpmfind.net/linux/fedora/linux/releases/41/Everything/x86_64/os/Packages/l/libtiff-devel-4.6.0-6.fc41.i686.rpm) Here's a step-by-step description of what I did to get it running: 1) Download drivers from Canon's official website 2) Install them via rpm or deb 3) sudo su 4) nano /etc/ccpd.conf (port number should be 59787) 5) systemctl restart cups.service 6) /usr/sbin/lpadmin -p LBP2900 -m CNCUPSLBP2900CAPTK.ppd -v ccp://localhost:59787 -E (instead of LBP2900, the number of your printer and the ppd to it, which can be viewed in linux-capt-drv-v271- uken/Doc/README-capt-2.71UK.txt or find a suitable file for your printer in /usr/share/cups/model/) 7) /usr/sbin/ccpdadmin -p LBP2900 -o /dev/usb/lp0 (You need to check through "ls /dev/usb" the number of lp*, in most cases it is lp0, but it is better to check. The printer must be turned on ) 8) nvim (or nano) /etc/systemd/system/ccpd.service -> [Unit] Description=CCPD Printing Daemon Requires=cups.service After=cups.service

[Service] Type=forking ExecStart=/usr/sbin/ccpd

TimeoutSec=30

[Install] WantedBy=default.target

9) systemctl daemon-reload 10) systemctl enable ccpd.service 11) systemctl start ccpd.service 12) systemctl status ccpd.service

And that's all, after that the printer started working normally and prints exactly the same as in Windows. The most important thing is to install libpopt0:i386 libtiff4:i386, because without them there will be an error ccp send_data error, exit. I hope this helps you

artvolk commented 1 week ago

Thanks for the update!

Unfortunately will not work in my case: I'd like to have printer connected to the ARM machine with lower power consumption and official drivers are Intel only.