Richard, > I noticed that the print module hasn't been talked about for a while, > at least on email (sorry, I don't do IRC very often at all).
Same here. > Came to > think of it yesterday, while playing around with a friends photo > printer (a Novajet 750, it takes paper rolls up to 108cm wide). > > As you might imagine, we didn't play directly from darktable, but it > got me thinking of certain details of this effort, see anotations > below. First I have very few free time at the moment so this has not moved forward since some time. Yet, I'm still motivated to see this integrated at some point, still lot of work ahead. > I'm noticing that your example has a specific paper size, A4. Are you > planning on giving the user the possibility for printing on > non-standard paper sizes? Not on the first implementation. I try to get it simple to have a chance to propose something will sound implementation and I hope other will step to enhance the module. > As an example, I've previously ordered prints for exhibits I've been > part of from a lab at 30x40cm (there's no ISO paper size that matches > that exactly) and 23x23cm. They will interpolate from any image I > toss them, so that's not really a big deal, but will be the day I > start using the Novajet a bit more. It's just to show that standard > paper sizes don't always cut it... I understand. > Also, since we're talking physical sizes (in whatever unit, let's keep > with cm for now), it might be nice to be able to give the page sizes > in cm and the printer's optimal dpi and have it figure the amount of > pixels needed and scale down/interpolate up (bicubic is the more > popular algorithm, is it not?) the image to fit. The size is computed by dt and the image is exported (with current export module) to fit the proper print area in the page. > pascal> -- > pascal> -- print -- > pascal> -- > pascal> > pascal> This is the final print controls. We have: > pascal> > pascal> - the intent > pascal> - the printer profile > pascal> - the style > > Ah, yeah, the style... I remember asking this question about > exporting, so it applies here as well... > > When a style is applied and happens to use a module that's already > used when making the image, will the former replace the values of the > latter or will it add them? No, it will be added to it as it is done with the export module style. The style there is just added into the queue before going through the pipeline. > An example, say I've noticed that whatever the calibration, the > printed image looks about one step darker than the image on my screen, > so I'd like to use a style when printing that uses the Exposure module > and has EV +1. Now, say that the image I manipulated already had an > EV correction (say -2, there are times when I want to darken the final > image), will the image end up being printed hugely overexposed (EV +1) > or will it be what I expected (EV -1, the sum of -2 and +1)? > Am I making my question clear? Yes, should work. > pascal> The [print] button using Gtk+ dialog. > pascal> > pascal> The print button will open the print dialog and will basiacally do > pascal> the following: > pascal> > pascal> - open the standard Gtk+ print dialog > pascal> here the user can select/change every option of the printer > pascal> (including the resolution) > pascal> > pascal> the user either Cancel or Print, if the later the following > pascal> is done: > pascal> > pascal> - export to 8bit or 16bit format (using export profile + intent > pascal> and possibly the selected style) > pascal> > pascal> - apply the printer profile if any > pascal> > pascal> - create the GtkPrintJob and send to printer > > I was going to ask if printing to file would be possible, but I guess > that's left to this print dialog, right? Not to file but to PDF if you have a PDF printer configured in CUPS. Should be enough, right? > pascal> ============== > pascal> == Internal == > pascal> ============== > pascal> > pascal> * The internal code will be mostly on those files: > pascal> > pascal> src/views/print.c - the print module itself > pascal> > pascal> src/libs/print_settings.c - the print dialog as seen on the right > pascal> > pascal> src/imageio/storage/print.c - do the print, a print io not seen on > pascal> export dialog (add a new flag to the > pascal> imageio api to hide it) > pascal> > pascal> An important point is to remember all the printer settings (first > section > pascal> above, the driver settings) from one session to the other. Gtk has > pascal> support for this. > > Is this in a branch somewhere, or are you currently keeping it to > yourself? Yes, but not clean at all :) There is a stack of different implementation I have tested with gutenprint, cups... just to learn how all this works as it is the first time I'm using a print API. Anyway if you want to have a look: https://github.com/TurboGit/darktable/tree/print-module -- Pascal Obry / Magny Les Hameaux (78) The best way to travel is by means of imagination http://v2p.fr.eu.org http://www.obry.net gpg --keyserver keys.gnupg.net --recv-key F949BD3B ------------------------------------------------------------------------------ Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration & more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk _______________________________________________ darktable-devel mailing list darktable-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/darktable-devel