Re: Pango tab stops

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 04/01/2009 07:27 PM, Ian Puleston wrote:
Hi,

Hi Ian,


I want to use a PangoTabArray to pass tab stop settings to a print function
along with text to be sent to a printer. The idea is that the caller passes
the pre-set PangoTabArray, and the print function then calls
pango_layout_set_tabs to add it to the PangoLayout created via
gtk_print_context_create_pango_layout.

But there seems to be a problem with setting the tabs correctly for the
resolution (dpi) of the printer. With a PangoTabArray the tabs are specified
in either pixels or Pango units, and to use either to set tag stops at fixed
distances requires knowledge of the resolution of the device, but the code
requesting the print cannot know that (the user has not even selected a
printer yet).

No it doesn't. The cairo PS/PDF/SVG surfaces use Postscript points as their device "pixel". That is, for positioning purposes, 72dpi is all you care about. The actual resolution of the printer printing them is irrelevant.

Makes sense?

behdad


Two solutions that I can see are 1) define the API to accept tabs set for a
300 dpi printer and have it internally multiple them up or down if necessary
once the print device has been selected, or 2) pass the tab settings in a
generic array or list and create the PangoTabArray internally once the print
device has been selected.

Neither is particularly neat, so I'm wondering if there may be some existing
structure or API somewhere in GTK or the other components for passing tab
stops in units such as inches, mm, etc.?

Ian




_______________________________________________
gtk-list mailing list
gtk-list@xxxxxxxxx
http://mail.gnome.org/mailman/listinfo/gtk-list

_______________________________________________
gtk-list mailing list
gtk-list@xxxxxxxxx
http://mail.gnome.org/mailman/listinfo/gtk-list

[Index of Archives]     [Touch Screen Library]     [GIMP Users]     [Gnome]     [KDE]     [Yosemite News]     [Steve's Art]

  Powered by Linux