Re: Using Pango and TrueType Fonts
Michael Gerbracht <[email protected]>
| Newsgroups | gmane.comp.lib.cairo |
|---|---|
| Message-ID | <[email protected]> |
In article <[email protected]>, Behdad Esfahbod <[email protected]> wrote: > > I would like to use Pango with Cairo to display data in graphs.[...] I am > > using a pangocairo library for lua running on windows to generate the > > graphics [...] First I noiced that I can display OpenType fonts but > > TrueType fonts are not displayed (just a crossed out rectangle is shown > > instead). I am using the pango_font_description_from_string method to set > > the font. Do I have to convert TrueType fonts first? > What do you mean by TrueType fonts/ Give us an example. local outfile = "C:\\font_test.svg" local surface = cairo.SvgSurface.create(outfile,744,526) local cr = cairo.Context.create(surface) cr:scale(1,1) cr:set_source_rgb(1, 1, 1) cr:paint() local desc = pango.FontDescription.from_string("Wingdings regular 14") local text = pangocairo.create_layout(cr) text:set_text("Some Text", -1) text:set_font_description(desc) width, height = text:get_size() cr:move_to((20480-height/4)/512,526-(129536-width/4)/512) cr:rotate(-alpha * math.pi / 180) pangocairo.update_layout(cr, text) pangocairo.show_layout(cr, text) cr:rotate(alpha * math.pi / 180) cr:destroy() collectgarbage() surface:destroy() My problem is, that the resulting svg does not use the Wingdings font to display the text. So I would expect the output to show some symbols from the Wingdings font but instead it uses an standard font. I played around a little bit and found out, that all OpenType fonts are shown correctly in the output - also symbolic fonts. But all TrueType fonts are not shown - a default font is used instead. I guess I have to use pango_win32_font. But there is no pango_win32_font_FontDescription_from_string methode so I expect that I need to access the font in several steps but unfortunately I do not know how I can do that. An simple example that shows the use of pango_win32_font would help. I know the manual page but I don't understand how to combine the commands to get what I want: https://developer.gnome.org/pango/unstable/pango-Win32-Fonts-and-Rendering.html > > Is there a better way to get the dimension of a single character? > An example would help. Try get_extents(), which returns two different > boxes, try both, see which one suits your need better. Ok, thanks I will try whether this gives better results. > > Finally I would like to be able to rotate the symbol. I can do this by > > rotating the surface, drawing the character, and rotate back. But is this > > the best way to do it or would you prefer another solution? > cairo_rotate before calling into Pango should work. Ok, so the above code is ok regarding rotation? thank you very much! Michael -- cairo mailing list [email protected] http://lists.cairographics.org/mailman/listinfo/cairo