[cairo] Rendering with PANGO_GRAVITY_EAST leads to different results with image and vectoriel buffer (pdf)

Behdad Esfahbod behdad at behdad.org
Mon May 25 16:05:53 PDT 2009


Hi,

Renders fine here.  Though, with a bitmap font.  Can you attach the resulting 
PDF file?

Better yet, file a bug at http://bugs.freedesktop.org/ against cairo and 
attach it there such that it's not lost.

behdad

On 05/21/2009 09:48 PM, kiwitargetgranule wrote:
> Hello,
> when rendering the following japanese utf-8 layout "おろしポン酢" with
> PANGO_GRAVITY_EAST, the pdf result is just the first char (CASE define)
> while the image result is the entire string.
> i certainly missed something but what ? or is this a bug?
> thanks in advance
> Tristan
>
> ========================================
> #include <pango/pangocairo.h>
> #include <cairo/cairo.h>
> #include <cairo/cairo-pdf.h>
>
> #define CASE
>
> int
> main (int argc, char *argv[])
> {
>
> cairo_surface_t *surface;
> cairo_t *cr;
>
> #ifdef CASE
> surface = cairo_pdf_surface_create ("hello.pdf",2000,2000);
> #else
> surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 2000, 2000);
> #endif
>
> cr = cairo_create (surface);
>
> PangoFontDescription *font_description;
> PangoLayout *layout;
> PangoContext *context;
>
> font_description = pango_font_description_new ();
> pango_font_description_set_family (font_description, "serif");
> pango_font_description_set_weight (font_description, PANGO_WEIGHT_BOLD);
> pango_font_description_set_absolute_size (font_description, 100 *
> PANGO_SCALE);
>
> layout = pango_cairo_create_layout (cr);
> pango_layout_set_font_description (layout, font_description);
> pango_layout_set_text (layout, "おろしポン酢", -1);
>
> //for vertical text
> context=pango_layout_get_context(layout);
> pango_context_set_base_gravity(context,PANGO_GRAVITY_EAST);
> pango_context_set_gravity_hint(context, PANGO_GRAVITY_HINT_STRONG);
> pango_layout_context_changed(layout);
>
> cairo_set_source_rgb (cr, 0.0, 1.0, 1.0);
> cairo_paint (cr);
>
> cairo_set_source_rgb (cr, 0.0, 0.0, 1.0);
> cairo_move_to (cr, 1000.0, 1000.0);
>
> /* Inform Pango to re-layout the text with the new transformation */
> pango_cairo_update_layout (cr, layout);
>
> pango_cairo_show_layout (cr, layout);
>
> g_object_unref (layout);
> pango_font_description_free (font_description);
>
> #ifdef CASE
> cairo_show_page(cr);
> #else
> cairo_surface_write_to_png (surface, "hello.png");
> #endif
>
> cairo_destroy (cr);
> cairo_surface_destroy (surface);
>
> return 0;
> }
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> cairo mailing list
> cairo at cairographics.org
> http://lists.cairographics.org/mailman/listinfo/cairo


More information about the cairo mailing list