[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