Print layout engine for Linux. Fully ICC aware

riclin

Getting Fingers Dirty
Joined
Oct 17, 2025
Messages
19
Reaction score
10
Points
28
Location
Melbourne, Australia
Printer Model
Canon Pro-10S, Canon iP8760
Just for the sake of transparency... This was all done with AI. Claude Opus for the heavy lifting and an open source au model for the coding.

I don't know how to code but I know about operating systems work in general (I'm a systems administrator) and know the color managed printing path on Linux quite well.

There is about 50 hours of work involved on a project like this and probably as many pages of copy paper in the recycling bin. The initial code produced by Claude had gotten so many things wrong because it thought it knew what it was doing.

I still really enjoyed the experience. It's like having a junior programmer that does a lot of mistakes. In a few cases, when mistakes were made I realized I needed to give the AI more info to begin with
Very impressive results - compiled up cleanly and does what it says on the box. Congratulations! - we've moved into a new era of code development eh? A suggestion on behalf of potential users outside the US - perhaps you might consider incorporating metric measurements as an alternative (or addition) to imperial units for image sizes? - although you already allow for metric "A" paper sizes, the image sizes are all in inches - mm or fractional cm would make a lot more sense when working with metric papers. Otherwise - great effort!! Thanks.

r/
 
Last edited:

crenedecotret

Print Addict
Joined
Oct 5, 2006
Messages
223
Reaction score
91
Points
163
Very impressive results - compiled up cleanly and does what it says on the box. Congratulations! - we've moved into a new era of code development eh? A suggestion on behalf of potential users outside the US - perhaps you might consider incorporating metric measurements as an alternative (or addition) to imperial units for image sizes? - although you already allow for metric "A" paper sizes, the image sizes are all in inches - mm or fractional cm would make a lot more sense when working with metric papers. Otherwise - great effort!! Thanks.

r/
Thanks for trying it out :) I think we are soon entering an era where people will need to think about how things work but not necessarilly need to worry about the code itself.

The "A" sizes was on my to do list but I wanted to get all the basic functionality out of the way first. That should be very easy. There is probably some other areas where I would need to switch to metric.. border calculations for example where right now i'm using the point system.

I probably also need to think of a way to package this to DEB, RPM or flathub but I have no idea where to start.

Just out of curiosity, what printer did you try it on? I only had a few available to me at home and at work but the printer properties detection code was difficult to set up
 

riclin

Getting Fingers Dirty
Joined
Oct 17, 2025
Messages
19
Reaction score
10
Points
28
Location
Melbourne, Australia
Printer Model
Canon Pro-10S, Canon iP8760
Thanks for trying it out :) I think we are soon entering an era where people will need to think about how things work but not necessarilly need to worry about the code itself.

The "A" sizes was on my to do list but I wanted to get all the basic functionality out of the way first. That should be very easy. There is probably some other areas where I would need to switch to metric.. border calculations for example where right now i'm using the point system.

I probably also need to think of a way to package this to DEB, RPM or flathub but I have no idea where to start.

Just out of curiosity, what printer did you try it on? I only had a few available to me at home and at work but the printer properties detection code was difficult to set up

I don't see a problem with specifying borders in points - but setting image sizes in inches just feels clunky - sorry ;). Millimetres or fractional centimetres feel more appropriate when laying out several smaller images to fit a single page size - but perhaps that's just me!

I printed with both a Canon IP8700 and a Pro-10S - Vibeprint found them both as well as every other printer instance on my net. I should add that I use TurboPrint instead of pure CUPS but I don't see that as being of much importance - it also found all of my CUPS printer instances even though I didn't actually print to any of them.

So far as packaging - well I guess that depends on whether you intend distributing source or only the binary. If the latter, then I'd suggest a deb (or similar). If you're just distributing the source, then a compressed tar file makes sense (vibeprint.tar.gz) - and if you intend continuing down the OSS path then you'll need a package for the code anyway. Personally, I'm not a fan of flatpacks because of the likely duplication of libs etc - YMMV.

But all up - a good thing. You've briefed Claude well. Congrats!

r/
 

ThrillaMozilla

Printer Master
Joined
Jan 18, 2011
Messages
1,249
Reaction score
377
Points
253
It's sort of a "base" margin that's all around the paper. I noticed most printers will have something built in. On windows my R2000 was 3mm unless it was set to borderless. On linux it defaulted to 0mm. The option is there basically to fix any driver inconsistencies. By default it will read what CUPS reports but the user can define a larger value if they want to be on the safe side.

Say you want to print 12x18 on 13x19 paper. There would be two ways to do it.. you either leave the paper as detected and select 12x18 photo size when you add it to the canvas... OR you add a 1 inch border to your 13x19 paper and select the "Fit to page" option for the image
Thanks, but the margins were taken from Epson Print Layout on Windows, and that works, so I know the margins are right. I can also define larger margins and it still doesn't print. The error could be anywhere, and I have many things to do before I try to find the problem. It may even get fixed when I finally update my Linux system.
 

ThrillaMozilla

Printer Master
Joined
Jan 18, 2011
Messages
1,249
Reaction score
377
Points
253
I don't see a problem with specifying borders in points - but setting image sizes in inches just feels clunky -
But the paper is in inches, so we need the option. 10.75" is no more clunky than 26.0 cm or whatever.
 

riclin

Getting Fingers Dirty
Joined
Oct 17, 2025
Messages
19
Reaction score
10
Points
28
Location
Melbourne, Australia
Printer Model
Canon Pro-10S, Canon iP8760
But the paper is in inches, so we need the option. 10.75" is no more clunky than 26.0 cm or whatever.
Without checking, I'm guessing that paper sizes are not hard coded but are being pulled from printer properties? - because I'm seeing a bunch of options including A paper sizes in the properties box next to the printer name so I'm guessing that the paper sizes are already being served up by the printer driver. As far as dimensional units are concerned - it's probably in part what one is used to, but the US is one of the few countries still using imperial measurements. Almost everywhere else uses the metric system - and having to mentally convert from mm or cm back into inches just seems - well I've got to say it - clunky! 😉
 
Last edited:
Top