[cairo] Help needed using different fonts

Behdad Esfahbod behdad at behdad.org
Mon Aug 29 08:55:41 PDT 2011


You should ask on the gtk-i18n mailing list.   The Windows backend is just not
that good...

behdad

On 08/29/11 09:00, Deepak Kumar JAIN wrote:
> Hello Maarten
> 
> I am working with MS Visual Studio 2008 on 64 bit windows with cairo and pango.
> 
> This is the following code.
> /
> draw_text (cairo_t *cr)
> {
> #define RADIUS 150
> #define N_WORDS 10
> #define FONT "Monotype Corsiva,27"
>   PangoLayout *layout;
>   PangoFontDescription *desc;
>   int i;
>   /* Center coordinates on the middle of the region we are drawing
>    */
>   /* Create a PangoLayout, set the font and text */
>   layout = pango_cairo_create_layout (cr);
>   pango_layout_set_text (layout, "Text", -1);
>   desc = pango_font_description_from_string (FONT);
>   pango_layout_set_font_description (layout, desc);
>   pango_font_description_free (desc);
>   /* Draw the layout N_WORDS times in a circle */
>       int width, height;
>       double red;
>       cairo_save (cr);
>       /* Gradient from red at angle == 60 to blue at angle == 240 */
>       cairo_set_source_rgb (cr, 1, 0, 0);
>       /* Inform Pango to re-layout the text with the new transformation */
>       pango_cairo_update_layout (cr, layout);
>       pango_layout_get_size (layout, &width, &height);
>       cairo_move_to (cr, - ((double)width / PANGO_SCALE) / 2, - RADIUS);
>       pango_cairo_show_layout (cr, layout);
>       cairo_restore (cr);
>   /* free the layout object */
>   g_object_unref (layout);
> }
> int main (int argc, char **argv)
> {
>   cairo_t *cr;
>   char *filename;
>   cairo_status_t status;
>   cairo_surface_t *surface;
>   filename = "montotype1.png";
>   surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
>                                         2 * RADIUS, 2 * RADIUS);
>   cr = cairo_create (surface);
>   cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
>   cairo_paint (cr);
>   draw_text (cr);
>   cairo_destroy (cr);
>   status = cairo_surface_write_to_png (surface, filename);
>   cairo_surface_destroy (surface);
>   if (status != CAIRO_STATUS_SUCCESS)
>     {
>       g_printerr ("Could not save png to '%s'\n", filename);
>       return 1;
>     }
>   cin.get();
>   return 0;
> }/
> 
> Working with Times Roman, I used ",;" and it worked but when I try Monotype
> Corsiva, it throws the same warning as
> 
> PANGO Warning: Couldn't load font " Monotype Corsiva -not Rotated 27", falling
> back to "Sans Not -Rotated 27" , expect ugly output.
> 
> Thanks,
> Deepak 
> 
> 
> 
> 
> On Mon, Aug 29, 2011 at 2:47 PM, Maarten Bosmans <mkbosmans at gmail.com
> <mailto:mkbosmans at gmail.com>> wrote:
> 
>     2011/8/29 Deepak Kumar JAIN <deepak19dec at gmail.com
>     <mailto:deepak19dec at gmail.com>>:
>     > Thanks Maarten;
>     >
>     > But still some of the fonst dont work and I get the same warning
>     >
>     > fonts like Monotype Corsiva. What Should I do for those fonts?
> 
>     So it was fixed for Times New Roman, but not for Monotype Corsiva?
>     Weird. What did you do to make times work?
>     Did you use pango_font_description_set_family?
> 
>     Please provide some more background info of the code that fails, error
>     messages and info on the platform you are on.
> 
>     Maarten
> 
>     > On Mon, Aug 29, 2011 at 11:11 AM, Maarten Bosmans <mkbosmans at gmail.com
>     <mailto:mkbosmans at gmail.com>>
>     > wrote:
>     >>
>     >>
>     >>
>     http://blogs.operationaldynamics.com/andrew/software/java-gnome/use-comma-in-font-description
>     >>
>     >> 2011/8/29 Deepak Kumar JAIN <deepak19dec at gmail.com
>     <mailto:deepak19dec at gmail.com>>:
>     >> >
>     >> > Hello All,
>     >> >
>     >> > I am new to Cairo Graphics. I heard about cairoGraphics from a developer
>     >> > at
>     >> > SHARP labs.
>     >> >
>     >> > I am developing a text manipulation plugin which do several things like
>     >> > underline, strikeout text, etc.
>     >> >
>     >> > But I want to write the text in different fints like Times new Roman,
>     >> > Arial
>     >> > , Courier, etc depending on what user prefers. These fonts will be input
>     >> > by
>     >> > the user and then on the basis of input by user, I have to write a text
>     >> > on
>     >> > the image.  But I am not able to write the text with Times New Roman.
>     >> > I am using pango_font_description_from_string(FONT) where FONT is
>     >> > defined as
>     >> > #define FONT "Arial 27". It works for Arial but when I try to use Times
>     >> > New
>     >> > Roman, it says
>     >> > " Pango Warning" couldn't load font Times ", falling back to "Sans not
>     >> > Rotaed 27" , expect ugly output.
>     >> >
>     >> > Please help me in this regard by suggesting how should I proceed?
>     >> >
>     >> > Thanks,
>     >> >
>     >> > Deepak JAIN
>     >> >
>     >> > --
>     >> >
>     >> > Thanks & Regards,
>     >> > Deepak Kumar JAIN
>     >> > Internship student,
>     >> > Orange Labs,France Telecom,
>     >> > Rennes, France
>     >> > Contact: +33(0)6 31 15 44 66 <tel:%2B33%280%296%2031%2015%2044%2066>
>     >> > www.deepakkumarjain.co.cc <http://www.deepakkumarjain.co.cc>
>     >> >
>     >> > "I err therefore I am "- Saint Augustine
>     >> >
>     >> >
>     >> >
>     >> >
>     >> > --
>     >> >
>     >> > Thanks & Regards,
>     >> > Deepak Kumar JAIN
>     >> > Internship student,
>     >> > Orange Labs,France Telecom,
>     >> > Rennes, France
>     >> > Contact: +33(0)6 31 15 44 66 <tel:%2B33%280%296%2031%2015%2044%2066>
>     >> > www.deepakkumarjain.co.cc <http://www.deepakkumarjain.co.cc>
>     >> >
>     >> > "I err therefore I am "- Saint Augustine
>     >> >
>     >> >
>     >> > --
>     >> > cairo mailing list
>     >> > cairo at cairographics.org <mailto:cairo at cairographics.org>
>     >> > http://lists.cairographics.org/mailman/listinfo/cairo
>     >> >
>     >
>     >
>     >
>     > --
>     >
>     > Thanks & Regards,
>     > Deepak Kumar JAIN
>     > Internship student,
>     > Orange Labs,France Telecom,
>     > Rennes, France
>     > Contact: +33(0)6 31 15 44 66 <tel:%2B33%280%296%2031%2015%2044%2066>
>     > www.deepakkumarjain.co.cc <http://www.deepakkumarjain.co.cc>
>     >
>     > "I err therefore I am "- Saint Augustine
>     >
>     >
> 
> 
> 
> 
> -- 
> 
> Thanks & Regards,
> Deepak Kumar JAIN
> Internship student,
> Orange Labs,France Telecom,
> Rennes, France
> Contact: +33(0)6 31 15 44 66
> www.deepakkumarjain.co.cc <http://www.deepakkumarjain.co.cc>
> 
> "/I err therefore I am /"- Saint Augustine
>  
> 
> 
> 
> --
> cairo mailing list
> cairo at cairographics.org
> http://lists.cairographics.org/mailman/listinfo/cairo


More information about the cairo mailing list