[cairo] Cairo move_to(x,Y); show_pango_layout(l) & Output SVG path y do not matchup

Behdad Esfahbod behdad.esfahbod at gmail.com
Sat Aug 8 15:04:53 PDT 2015


On 15-08-08 04:38 PM, Jagan Veeraraghavan wrote:
> Hi,
> I am trying to use Cairo-pango to render text as svg. The following ruby code
> shows that the ink lbearing=0 & ascent=-16. So i do a move_to (0,+16). But the
> output svg has y at 66.40091. I expected output svg y to begin at 16. So the
> text is not snug fit to right top and there is a vertical padding of 50
> pixels. Is my code wrong or my expectation from the code wrong. Is it possible
> to position the text so that it 'hugs' the top & left.
> 
> ----txt2svg.rb----------
> def draw_text(cr)
> text1 = "The grass is greener where we're going."
>   layout = cr.create_pango_layout
>   desc = Pango::FontDescription.new(FONT1)
>   layout.set_font_description(desc)
>   layout.set_text(text1)
>   ink,logical=layout.pixel_extents
>   puts ink.lbearing,ink.ascent
>   cr.move_to(ink.lbearing*-1,ink.ascent*-1)

What language & language-binding is this?  Rectangles don't have lbearing and
ascent in pango!  PangoRectangle has x,y and that's what you need.  Ascent is
specifically wrong.

b

>   cr.update_pango_layout(layout)
>   cr.show_pango_layout(layout)
> end
> surface = Cairo::SVGSurface.new("text.svg",1080, 720)
> cr = Cairo::Context.new(surface);
> draw_text(cr)
> 
> -----------------
> 
> ---text.svg---
> 
> 
> <?xml version="1.0" encoding="UTF-8"?>
> 
> <svg xmlns="http://www.w3.org/2000/svg"
> xmlns:xlink="http://www.w3.org/1999/xlink" width="1080pt" height="720pt"
> viewBox="0 0 1080 720" version="1.1">
> 
> <defs>
> 
> <g>
> 
> <symbol overflow="visible" id="glyph0-0">
> 
> <path style="stroke:none;" d="M 11.765625 -7.484375.......
> 
> .........
> 
> </defs>
> 
> <g id="surface1">
> 
> <g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
> 
> <use xlink:href="#glyph0-1" x="0" y="66.400391"/>
> 
> <use xlink:href="#glyph0-2" x="22.65625" y="66.400391"/>
> 
> <use xlink:href="#glyph0-3" x="46.416016" y="66.400391"/>
> 
> <use xlink:href="#glyph0-4" x="68.832031" y="66.400391"/>
> ....
> </svg>
> ---------------
> 
> Jagan
> 
> 


More information about the cairo mailing list