Level of interest in a Windows print module

I have a working backend to print on Windows and i wanted to gauge the level of interest in working to send for consideration to incorporate into the main release. If not very desirable, I’ll keep as a personal tool or share as files that could be compiled from source. Its only two new files and a minor expansion of print_settings.c to handle some Windows quirks along with slight adjustments to a few cmakelists to turn the print view on.

  • Yes please!
  • Make the code available to download
  • Don’t care
0 voters
1 Like

Since printing is available in Linux it would be good to have in Windows.

It would be very good to have, even though I personally won’t ever use it.

1 Like

It would be phantastic to also have the ability in windows to properly print, directly from darktable. And, yes, I would definitely use it.

I would like it very much.
A very missing feature for windows for sure!

If you have a working solution, I encourage to start a PR in dt GitHub. This way it can be tested and see if it can be merged. The main issue I would see is long term maintainability.

I’m assuming that this is windows 10 and newer (eg. not window 95). :slight_smile:

Loving the positive response so far. I’ll consider a PR for it once I get it to state i’m at least happy with. A few things I’m working on to allow for changing printer settings in app. I will warn Windows has some quirks that make it difficult if not imposible to do all that’d I like out of a perfect module because there are no standardized ways of dealing with things like borderless prints. Basically that’s on the printer vender to handle and they all do it a little different. So the main approach will be:

  • ICC profiles should be properly applied, but that will need testing (I didn’t change the Linux pipeline on that)
  • Paper size selection in darktable is to establish a layout canvas. It will not change the printer’s paper setting (I tried that but it broke borderless at least on Epson). You will have to match, if desired, the paper in the printer driver settings manually.
  • I pull hardware print resolutions and offer as a quality pull down but I have yet to find a driver that offers multiple options though the Windows basic printing standards provides that functionality - so it might end up being just an FYI but a good one
  • I have the Windows printing settings dialog set to pop up on first print if it hasn’t been opened before to confirm printer settings

And finally a note on my coding ability. I’m more of a C#/.NET programmer and this is my first effort on C, so while the logic is mine I relied on our AI overlords to help with syntax in the code. As a result, it might be a bit hacky and if a real C programmer wants to look at my code and refactor if it passes through a PR, I welcome it.

And this is targeting Windows 10/11 but I believe the Win32 libraries being used should be compatible back to 7 as the GDI stack is quite old. 32 bit Windows though, I think you’re on your own :grin:

1 Like

Support for Windows 10 will end on October 14, 2025.

Just as an update to everyone interested I was unsatisfied with the size of the print files my first attempt was producing. I did a bit of a rewrite after digging in deeper to how Windows handles direct bitmap printing. I’m in the testing phase of that revised code but initial PDFs look good. Things I want to check before considering a pull request:

  1. needs to better handle color profiles on the input side. Windows printers expect srgb unless you send along a icc profile, so looking into that to at least have Adobe RGB be a valid option. Paper icc profiles should turn off printer color managerment and that still needs testing as well.
  2. I need to double check my rewrite addressed the giant print files (180MB for a 8x10) that were printing very slowly. Super high resolution prints processed by darktable given we have to send uncompressed bitmaps might have a side effect of slow printing.
  3. Just general testing on multiple printers. What I can say is it works and I get prints, but I want to at least verify things like margin handling on the two printers I have.

I may make the code available on request once I’m satified I don’t have any game stopping bugs. And will put in a PR for the overall project, but that might take some time even to make the odd number test releases.

4 Likes

Hi @cjhemmer, have you made progress on the print support for Windows? It will be nice if we could integrate this for the next release. What do you think? Maybe create a PR to discuss with the Windows experts?

TIA

2 Likes

It would be so nice to have a windows print module for darktable. I recently needed to print some photos at home and was so sad to learn that darktable’s print module doesn’t work on windows :frowning_face: