WYSIWYG Printing

WYSIWYG Printing — how to use the canvas to create accurate printed output.

WYSIWYG Printing

Screen Resolution

The GooCanvas #GooCanvas:resolution-x and #GooCanvas:resolution-y properties must be set correctly. They both default to 96dpi, which corresponds to a typical monitor. To get a more accurate figure you might be able to use gdk_screen_get_resolution(), but this isn't always guaranteed to be correct. If accuracy is very important a method should be provided for the user to calibrate the screen.


Units

The GooCanvas #GooCanvas:units property must be set to one of %GTK_UNIT_MM, %GTK_UNIT_POINTS or %GTK_UNIT_INCH (it defaults to %GTK_UNIT_PIXEL). All values used within the canvas are assumed to be in the specified units, including font sizes.


Font Sizes

Absolute font sizes must be used (to prevent the fonts being mistakenly scaled by Pango as well as by GooCanvas). To specify absolute font sizes add "px" after the font size, e.g. instead of "Sans 9" use "Sans 9px".

Font sizes must be converted to the units used by the canvas. For example, if a 9 point "Sans" font is desired but #GooCanvas:units is set to %GTK_UNIT_MM, then the size must first be converted into millimeters: (9 / 72) * 25.4 = 3.175mm. So the font used would be "Sans 3.175px".


Example Code

The units-demo application that comes with the GooCanvas source code demonstrates the use of different units and absolute font sizes.