A Dilluns 01 Desembre 2008, JustFillBug va escriure:
> https://bugs.freedesktop.org/show_bug.cgi?id=15301
>
> Attached patch fixed bug 15301 for specific CJK Fonts.

That looks ugly, but in case we have to end up doing that the list of fonts 
and the obtention of the freetype flags should end up in a common file so 
SplashOutputDev can use it too.

Albert

>
>
> --- CairoFontEngine.cc.orig   2008-12-01 17:26:16.000000000 +0800
> +++ CairoFontEngine.cc        2008-12-01 17:26:21.000000000 +0800
> @@ -220,9 +220,37 @@
>      delete tmpFileName;
>    }
>
> -  cairo_font_face = cairo_ft_font_face_create_for_ft_face (face,
> -                                                        FT_LOAD_NO_HINTING |
> -                                                        FT_LOAD_NO_BITMAP);
> +  {
> +    // Find out tricky fonts which need HINTING to render properly.
> +    // See freetype src/truetype/ttobjs.c: tt_face_init()
> +    static const char* const  trick_names[] =
> +    {
> +      "DFKaiSho-SB",     /* dfkaisb.ttf */
> +      "DFKai-SB",        /* kaiu.ttf */
> +      "HuaTianSongTi?",  /* htst3.ttf */
> +      "MingLiU",         /* mingliu.ttf & mingliu.ttc */
> +      "PMingLiU",        /* mingliu.ttc */
> +      "MingLi43",        /* mingli.ttf */
> +      NULL
> +    };
> +    int load_flag = FT_LOAD_NO_BITMAP;
> +    GBool tricky = gFalse;
> +    int nn;
> +
> +    for (nn = 0; trick_names[nn] != NULL; nn++ )
> +    {
> +      if (face->family_name && strstr(face->family_name, trick_names[nn] )
> ) +      {
> +     tricky = gTrue;
> +     break;
> +      }
> +    }
> +    if (!tricky)
> +      load_flag |= FT_LOAD_NO_HINTING;
> +
> +    cairo_font_face = cairo_ft_font_face_create_for_ft_face (face,
> load_flag); +  }
> +
>    if (cairo_font_face_status (cairo_font_face)) {
>      error(-1, "could not create cairo font: %s\n", cairo_status_to_string
> (cairo_font_face_status (cairo_font_face))); goto err2; /* this doesn't do
> anything, but it looks like we're
>
>
>
>
> _______________________________________________
> poppler mailing list
> [email protected]
> http://lists.freedesktop.org/mailman/listinfo/poppler


_______________________________________________
poppler mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/poppler

Reply via email to