In this new version I have changed the way to specify the margins.
Indeed when printing using a % of the width or height is not the most
interesting. When printing one want to really specify a precise value
in cm, mm or inch I suppose.
Question is: Do we have support for units in dt?
I have also added an alignment widget (same as in watermark module) to
specify the alignment of the picture inside the print area.
--
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
Design Notes for the Print Module
=================================
Version: 6
This is the initial goal for the print module. It supports a single print,
one image per page. Adding templates, multi-images per page, rotation... will
be discussed later if there is needs for it. But as dt is a professional photo
application I'm not sure this is a goal for dt. At least some other software
around are dedicated to "fun" printing.
On important goal after the first iteration is that dt should not add
dependencies if possible. This second design notes are using plain
Gtk+ services. No CUPS API, no Gutenprint or whatever. We rely on
what/how printers are configured on the systems. Be it on CUPS or
whatever and using whatever backend (hplip, gutenprint...).
=========
== GUI ==
=========
A first snapshot of the print module is available and propose:
/// LEFT
On the left the collect and image information modules.
/// CENTER
On the center the main display with the page and the image on it. This
center area is the print-preview and will display:
- the page itself
- the image on it
- the non-printable area materialized
- the user margins
We probably want the soft-proofing to work on this area.
/// RIGHT
On the right the printing control itself.
/// BOTTOM
The film-strip as for the develop and map module.
This controls on the right has 2 sections:
--
-- page --
--
This section is to define the print area. That is the area computed from
the page size and removing the borders.
Four controls will be added to add some margins (top, bottom, left,
right). A possibility to set all margins together is provided. The margins
should be specified in unit (cm, mm, inch) as this is what is most needed
when printing.
A control to set the alignment (same as watermark) into the print area.
Changing the borders will change the center display.
--
-- print --
--
This is the final print controls. We have:
- the intent
- the printer profile
- the style
The [print] button using Gtk+ dialog.
The print button will open the print dialog and will basiacally do
the following:
- open the standard Gtk+ print dialog
here the user can select/change every option of the printer
(including the resolution)
the user either Cancel or Print, if the later the following
is done:
- export to 8bit or 16bit format (using export profile + intent
and possibly the selected style)
- apply the printer profile if any
- create the GtkPrintJob and send to printer
Let's try an ASCII art for this menu:
------------------------------------------
| |
| printers [ Stylus Pro 3880 ]^ |
| |
| /page |
| papers [ A4 ]^ |
| (o) portrait (o) landscape |
| |
| borders (x) symetrical |
| top <--------- 10cm ----------> |
| bottom <--------- 10cm ----------> |
| left <--------- 10cm ----------> |
| right <--------- 10cm ----------> |
| |
| / - \ |
| alignment | . | |
| \ - / |
| /print|
| |
| format (o) 8bit (o) 16bit |
| export profile [ sRGB ]^ |
| intent [ perceptual ]^ |
| style [ none ]^ |
| |
| printer profile [ epson-3880.icc ]^ |
| intent [ perceptual ]^ |
| |
| (print) |
| |
------------------------------------------
Where: [ ]^ - dropdown box
<---> - slider
( ) - button
(x) - a select box
(o) - radio buttons
==============
== Internal ==
==============
* The internal code will be mostly on those files:
src/views/print.c - the print module itself
src/libs/print_settings.c - the print dialog as seen on the right
src/imageio/storage/print.c - do the print, a print io not seen on
export dialog (add a new flag to the
imageio api to hide it)
An important point is to remember all the printer settings (first section
above, the driver settings) from one session to the other. Gtk has
support for this.
* Best image resolution
We want to derive the best image resolution from the selected printer
resolution. The following equation must be verified:
printer_resolution (dpi)
------------------------ = 2 x n
image_resolution (ppi)
dpi : dot per inch
ppi : pixel per inch
So we have:
printer resolution | image resolution
----------------------------------------
1440 | 360
4800 | 300
5760 | 360
======================
== Color Management ==
======================
The goal is to be sure that the color profile for the printer in the
dialog above will be the only color management involved. That is no
other color management should happen from dt up to the printer.
- CUPS : the print queue
It seems that CUPS does not do color management by itself but there
is provision for it to record a printer profile to colord. This
profile can be used by the CUPS filters (gstoraster, imagetoraster,
pdftoraster, rastertopdf...).
How to disable CM?
Is that even needed?
How to know that CM is on or off?
- Gutenprint backend
does not do any color management.
------------------------------------------------------------------------------
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
_______________________________________________
darktable-devel mailing list
darktable-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/darktable-devel