Cairo itself cannot read SVG files. You need something like librsvg to display SVG on the surface of Cairo.
From a quick overview of their API documentation , it looks like you need to rsvg_handle_new_from_file()download a file and something like rsvg_handle_render_cairo()or rsvg_handle_get_pixbuf()in order to draw an SVG in the context of Cairo / in order to turn an SVG into GdkPixbuf.
source
share