The Canon PIXMA Linux blog, for all Canon PIXMA all-in-ones: Borderless printing on Pixma ... now painless ?
and … only available to the root user!!!
IMHO, a good reason for … reworking a little bit original ppd files, and… turnaround some buggy code.
/usr/lib/bjlib/cifmp610.conf (or /usr/lib/bjlib/cifmp600.conf for MP600), to add lines with a small x like 4x6, 5x7 in the [papersize] section.
The new packages files to download include those new ppds, along with the modified cifmp610.conf / cifmp600.conf files.
Download here the latest package for the printer and language (English or French) you want.
Then, you can start printing borderless images, simply by selecting the new “borderless” paper formats that appear in the paper sizes list, in your application printing dialog.
Under Gnome, simply double click an image, this trigs “Eye Of Gnome”, Gnome’s standard picture viewer. Note that many other picture viewers (KDE’s, Gnome’s …) will have the same ability, EOG is used here as sample.
EOG supports now Gnome’s standard printing dialog.
Choose in the printers list, the MP610 or MP600, and in the papers list, the new borderless format you want. Choose also the image orientation.
Now, in the printing dialog "File/print", look at the “image parameters” tab. In the preview pane, EOG will show your photo as printed on paper, the borders will be 0 if image matches paper format.
Important: choose a combination of paper type and print quality that match. Check Canon's driver user manual (see cifmp610 or cifmp600 "Print Option Combinations" section) for compatible combinations.
Choose also options in the "advanced" tab, and check the quality, halftoning options to match for the paper type selected.
PPD files have been updated for borderless A4, 4"x6", 5"x7", 4"x8", 8"x10" formats.
If you need to add other paper formats, simply create new .bl papersizes in the ppd file.
Files proposed here are for MP600/MP610 printers, but the same method can be used for many other Canon printers that use the same drivers. Again, modify the same way the ppd and .conf files.
You might notice that the printed image extends a little bit outside the paper. This is due to the cifmp6x0 utility, that uses a --extend parameter, which defaults to 2. This makes image extend a little bit outside the paper. See Canon’s driver cifmp6x0 documentation (borderless and extend options) for more information.
Borderless printing on A4 is not very accurate, as stated in Canon's documentation (the 'Doze documentation). Please take a look at this Canon documentation to get info on borderless printing.
I'ved copied the needed files from /usr/lib to 327 and the other way, problem still exist. No such files in /usr/lib64/ to copy.
But I don't find this "ebuild"-program on mandriva.
Does anyone does exactly know for what the canon-directory cnijfilter i need?
Formicrofiche scanning some matlab or c code that obtaines the I,P,B frames from an mpeg movie.
Thx for this Hints, tried them on Debian Etch with some packages (sane, cups et al) from testing yesterday.
My Results were not that pretty. Borderless printing on A4 leaves some white Border about 1-1,5mm at right and lower side of the Paper.
As well, OpenOffice won't let me to select smaller borderless Formats. I can select p.e. 4"x6" 101.6x152.4mm borderless in the printing dialog, but there remains a border of 3mm all around the sheet when printing. And if I exit the dialog and enter again, it shows the 4x6" Format with border as the selected one.
So is there anything which can be fixed by hacking the ppd? I would also like to have some custom formats for Fotos (9x13cm, 10x15cm) and CD-Labels.
Next Problem is that the "Paper Feed Switch" option seems not to work. The printer tells me to insert paper into the rear tray, but there is paper in the bottom tray which is used if I select that directly.
And has anybody succeeded in printing directly on a CD with Linux and the MP610? Seems it won't accept the CD tray at all, I could not select it anywhere.
If you read carefully Canon's documentation (Win help, UserGuide93.chm), Canon warns about limitations in borderless printing, especially for plain paper.
I suggest you use rather Gtklp (or kprinter on KDE), instead of OpenOffice's printing dialog. You can install Gtklp as an additional printer in OpenOffice, using the "spadmin" utility, part of OpenOffice package (Choose New printer, PDF converter, Default driver, and enter gtklp as command line). This way, you'll be able to print borderless from OpenOffice, by activating borderless through Gtklp dialog instead.
Now, MP610 "Paper feed switch" does not automatically select which tray has paper. It simply means that paper tray is to be selected with the little select button on MP610. Re-read Canon's MP610 documentation about that.
For CD printing : Canon's driver does not currently support it, but latest MP610 Gutenprint driver (from 5.0.2 to 5.1.6, but broken in 5.1.7!) seems to. MP610 Gutenprint driver works fine (although I did not see any borderless option), and I'll try soon CD printing too. Will post on the blog if successful.
should add printers using your favourite CUPS frontend.
Bizarre limitation offered by Debian.
Migrate to Hardy Heron ?
Hi nicolos. A big thank you for providing this code. Great work. What open computing is all about.
I am interested in what anonymous (22.3.08) said about having the thin white borders on two sides as I am having this too but using 4"x6". I know the printer can do this as it works under Windoze. I am trying to print using digikam and kipi-plugin print wizard. I have checked the margins are set to zero and I am using a mp600.
You say "the borders will be 0 if image matches paper format". Does this mean that if the image does not match the 4x6 ratio some margins will be introduced rather than clipping off the edges so there is no margins? How does this interact with the --extend parameter? Will your sudo watch -n 1 "ps aux | grep mp600" catch the extend parameter?
Another potential factor is that kipi paper sizes are 10cm x 15cm which is not 4"x6" (which is 101.6mm x 152.4mm) This could be the source of the margins. If so this is a kipi issue which is a shame as kipi gives nice a page sized box to place over the image so one can choose where the clipping takes place when the image size does not match the paper.
I'd be interested in your thoughts. Perhaps I could get digiKam to use kprinter.
MP600/MP610 borderless printing is activated with the --borderless flag passed to the cifmp6x0 program.
To have a full image print on the paper, we need thus to "cheat" and send a little larger image to the printer than the true paper size. This can be easily achieved by changing the ImageableArea and PaperDimension parameters in the PPD file.
I'll propose some modified PPDs with that update, in the meantime, you can give a try if you want.
*ImageableArea 4X6.bl: "0.0 0.0 296.00 444.00"
*ImageableArea 4X8.bl: "0.0 0.0 296 592"
I have tried your suggestion of altering paper size to 296.00 444.00 and it works (hooray!). I get borderless prints _but_ I now get one or two hairline white stripes ie no ink (boo) on the print going across the narrow dimension of the print. This is not a print head problem because they occur when I print landscape or portrait (ie the lines go along or across the printing direction depending on orientation but always across the narrow dimension of the photo).
When we had the smaller paper size set which produced the 2mm borders on two edges the lines did not appear so it seems to be a problem with the new page size. Should we try altering the size again? Maybe reducing the long dimension by a bit?
I did not experience such lines as you describe, but I'll do some other testing to check again.
In the meantime, yes, you can change the dimensions as you suggest, but you should keep the 3/2 ratio between large and narrow dimensions, in order for the imaging application (like EOG) to display a correct print preview of image (as it reads the selected paper dimensions to display the preview).
Let us know if you can improve the print result.
I just followed your instructions on an AMD64 system. It worked fine, except for the problem that cups looked for /usr/lib64/cups/filter/pstocanonij, but this file was installed in /usr/lib/cups/filter/pstocanonij. Since I had the necessary 32 bit libs installed, I solved the problem by just setting a link from the /usr/lib64/... file to /usr/lib/... - now the printer works.
Thanks for the instructions and help here!
Thanks Joerg for the tip, the Canon driver package is compiled for 32 bits, and thus files installed in the corresponding directories, so a small tweak is required for 64 bits, as the 64 libs are in a different directory. I'll add your comment to the article.
I have a MP470 that came with my system and followed your instructions setting it up as a 610 in cups.
Any clue as to what is going on.Could it be that the drivers aren't 100% compatible with my printer?Btw, it does the exact same thing in Mandriva.
For the MP470 printer part, you can use the GutenPrint driver for MP150. Reinstall the cups printer by choosing the MP150 GutenPrint driver, that should ship with your distribution.
For the scanner part, MP470 is now supported by Sane CVS, so just get and install Sane CVS, as exposed in this blog.
Hey, could you add support for european photo paper sizes?
Unfortunately, Canon have release this Cups PPD as is, and will probably never update it. As it is originally a Canon's proprietary file, it could not be packaged into a GPL distribution.
This worked and helped a bit. But I still haven't succeeded in getting the whole paper full... and right now my printer simply doesn't print the page. I've probably made some mistake somewhere in the ppd.
Okay. I've confirmed it's a driver restriction. It doesn't print any more at some point the values are too high.
I've gotten this far. It's really almost perfectly filling a 13cm x 18cm photo paper.
But one the width (smaller size), there is still a border that isn't even being printed right now. I don't really know why. Maybe someone has an idea?
I suggest setting up a new printer(with the canon driver, see manuals in this blog) and then replacing its ppd file at /etc/cups/ppd/printer_name.ppd with the one from the download. It's currently only modified for 13x18 borderless.
Thanks for a great job! Is it possible to add 9600x2400 dpi printing?
Thanks for the 13x18 tweak, I'll publish then soon a new update of the PPDs with this change.
9600x2400 dpi is not a standard printing resolution for the Canon cups driver, then I don't think it will be easy to add.
Maybe easier to check if GutenPrint driver can achieve this, the GutenPrint driver works pretty fine now with MP610.
yes, that would be nice. Do you think you could put into an extra entry? Because I've replaced the 5x7. I guess it would be nice if you could do either 5x7 or 13x18. And the setting is currently only changed for the borderless mode. I still don't understand enough of the .ppd format (after hours of changing and testing things...).
Wonderful prints, though. You can do testing by using normal paper with the setting Photo Paper and 5x7 borderless.
Then just hold the actual 13x18 photo paper above the plain paper and check if the size is at least equal. A little overlap is normal under Windows as well I think.
The source is largely an article in a german computer magazine.
If I use the preset for bigger paper size than 5x7, it should be easier to adjust the .ppd to print exactly the size of a 13x18 cm paper. Because then the size limitations of the 5x7 preset should be circumvented.
Regarding 9600x2400 and gutenprint. I can't choose 9600x2400 but I can choose automatic dpi, but I don't know what that means. The gutenprint driver on the other hand doesn't give me the same quality as the canon driver. Anyone who has any idea why?
The best regarding your 9600x2400 dpi question would be to post it in the gimp-print mailing list, maybe this is an issue that could be fixed.
Probably earlier cups versions tolerated the missing : but 1.3.8 not.
As I have to release a new version of the PPD including some dimensions fitting fixes, I will include this fix too. As soon as I'll have some time to do that, as I've been very busy with the Sane backend (upgrades for TPU scanning, ADF , ...) those times.
Any luck with the Canon drivers on 64bit Ubuntu Intrepid? On my machine it now fails, and a "ldd /usr/lib/cups/filter/pstocanonij" shows that it is linked to a libcups.so.2 which it can find, even though there is a lib with that name in /usr/lib.
And were you able to use these "home built" debs without copying the 32bit libcups to /usr/lib32?
I have posted a comment on another post in this blog, but I'd like to kind of go back on this here because you have direct experience with it.
from the sources downloaded from Canon, and it fails because (I think) it is not happy with a lot of binary libs shipping as part of the package, and that I'd assume are 32bit.
and so on. Similar to what Sturmkraehe wrote in a much older post.
How did you (Marcus) get around this?!
I am a novice with debian package building (though a 15-years linux user) and I am not sure how to tweak the process if at all possible in this case.
I have tried to make the suggested edit in the debian/control file, but the build still failed.
The one piece that may actually get built is the *common* package, because I see that its content is quite similar to that of the shipped i386 .deb file.
Marcus, is this the same that you got?
One maybe ok package and a bunch of basically empty ones?
And then you used the shipped deb file for the mp610 series... puzzling as it would seem that it would install some of those "327"
libraries that come 32-bit binary only.
I don't know what they are for, but I am surprised that your system does not complain, even at the installation step!?
Would you be so kind as to articulate what you did a little more?
After upgrading to Ubuntu Intrepid (8.10) my printing stopped working. When I then tried out printing pictures in Windows for the first time I found out the pictures look really bad there.
Now it's going to be hard to finish the photo calender... any ideas what might be wrong? I'll try installing the driver again now.
Lol - I was just going to leave a note about still having the problems building for AMD64 (or more concretely, linking the 32bit libs), but Surmkraehe beat me to it.
My problem is that I am currently unable to do decent photo prints. It looks like the driver messes up orientation or scale, and when I print from digikam I get the right hand third of the photo scaled to half size and printed on the bottom left of the paper, looking not only like the driver was trying to print portrait on a landscape page but like it was rescaling at the same time.
So, I was hoping that someone had been able to build a decent 64bit package of the print drivers - or posted instructions on how to build it, has I have now the same problems as Sturmkraehe.
So your packages are probably already doing fine.
The sourceforge stuff you linked to, would it work for a Pixma 540, I wonder?
For the printer part, did you try to use MP540 series printing driver provided by Canon on canon-asia.com site ?
Concerning the scanner part, please try to install Sane CVS, as exposed in this blog, there's great chance that it supports MP540 too.
@Nicolas, thank you for taking the time to reply.
Scanning If I'd found your blog and read about sane-cvs earlier on, I might have given that a shot, given that the user in question is used to sane from before. But the software canon provided is installed and functional, so that's not a issue at the moment.
Printing The user can print text without problems. However, printing photograph-quality stuff isn't straightforward all the time. Sometimes it works; sometimes it doesn't. The error echoed is something akin to "j32"; don't have it in front of my, I'm afraid, so it might be something else.
Having googled around a bit, I thought it might be a margin-issue. And indeed, when increasing the margin it sometimes seemed to work. However, it didn't work at all times. And the thing that's ticking the user (a.k.a. "mum") off, is that it seems she needs to muck about with margins almost every time she's to print something.
And that increasing the margin decreases the size of the image, and this is something she's not thrilled about.
These problems are not likely to go away with Nicholas' packages. They mostly add additional features and don't fix bugs. I don't think they could, as the bugs are probably in the precompiled software provided by Canon and/or cups and/or ghostscript.
What distribution and version are you using? I've had good results in Ubuntu 8.04 and bad results in 8.10.
Mm, was afraid that would be the case.
Interesting! It's a machine running Ubuntu 8.10. Which package would you recommend trying to downgrade first --- cups, ghostscript or both? To any specific version(s)?
It might be some sort of refresh error: user reports that most of the time, the first attempts of the day work just fine --- regardless of margin settings or any some such. That the problems occur (and indeed what is reported is something akin to "j32") only after having made successful printouts, and trying to get more sheets printed.
D [Job 1370] CIF COMMAND ERROR :file access Error!
E [Job 1370] pstocanonij write error,32.
D [Job 1370] File 0 is complete.
E [Job 1370] Job stopped due to filter errors.
So, what looks to be the culprit? It's the canon stuff, right? Write error? Might it be the printer hasn't been properly reset after last print or something like that?
D [18/Jan/2009:12:46:10 +0200] PID 27063 (/usr/lib/cups/filter/cpdftocps) exited with no errors.
The cause is not known. I guess I'd try using a different version of ghostscript. Older and newer might help.
@linux-tips: Right on the money - running kubuntu intrepid amd64 here. I have since reinstalled the turboprint 1.96 driver, which I had bought in 2007, but have yet to see if it will print photos properly.
Jbs, Kristian: Try out this https://bugs.launchpad.net/ubuntu/+source/gtk+2.0/+bug/310854/comments/44 and see if it helps? It worked for me. (I only did step 3+4).
@linux-tipps: Yup. Subscribing to the bug myself. ;) But thanks for pointing it out nevertheless!
The package is 0 bytes when I download, using Free or OVH in SourceForge.
Is there a good adress to get the right file ?
Any solution, to this problem?
1. What mean these numbers???
2. Is it correct that 4x6l is missing?
I am with Suse 11.1 and have a Pixma MP610. I am connected in Wifi through 9Box from Laptop to Box and Ethernet from Box to PC.
I added MP610 through Cups.
When I make a test, nothing happens.
- Is the MP610 installed on the laptop or PC ? Both running Linux ?
- Are you trying to print from the network ? Is the MP610 (under USB) correctly installed on its host with Cups, does it print from there ?
Maybe it'll be easier if you contact me by email to dig into this.
The printer is linked with USB to a 9Box for ADSL not a PC or laptop.
It is working fine with an other PC on Ubuntu and link to the 9Box with Ethernet.
For my laptop, I use wifi and OpenSuse.
So did you first try to print with the laptop using the ethernet cable, before trying with Wifi ?
No I try it direct with Wifi.
État de l'imprimante : ne fait rien, accepte les tâches, publique.
regarding the helpful post to create a link from the 32bit library to the 64bit lib - how do you do this? I'm using Red Hat Enterprise 6 - 64 bit version.