[Gambas-user] Cairo library - printing text

Benoît Minisini gambas at ...1...
Wed Aug 14 10:11:19 CEST 2013


Le 14/08/2013 09:22, Rolf-Werner Eilert a écrit :
> Hi all,
>
> Found the gb.cairo class, and I hope it will make PDFs from command line.
>
> The task is not too ambitious, just 2 pages, but there is a lot of text
> (4 paragraphs) on one of them.
>
> Due to documentation, the DrawText function in Cairo just prints a
> single line, and I have to move to the starting point before, is that
> correct? Is there another function that has as much comfort as the
> DrawText function of the Paint class? And what is the difference between
> DrawText and Text?
>
> In the documentation, it says Begin only starts printing on an image by
> now, but how with PDF? (A simple example of how to start and end
> printing with Cairo would be nice here, e. g. on the first Cairo page.)
>
> Thanks for your advice.
>
> Rolf
>

The documentation is not up to date. Now gb.cairo can draws on any of 
its "Surface" classes (you can read the Cairo documentation and Cairo 
examples, as gb.cairo has almost exactly the same interface, usually 
simplyfing it).

It works like that :

Dim hCairoPdfSurface As CairoPdfSurface

hCairoPdfSurface = New CairoPdfSurface ( Path As String, Width As Float, 
Height As Float )

Cairo.Begin(hCairoPdfSurface)

...

Cairo.ShowPage() ' Go to the next page

...

Cairo.End()

As for drawing text : Cairo implements just a "toy" API. That means if 
you want full unicode text handling, you need to use gb.qt4 or gb.gtk.

Cairo.Text() adds text glyphs to the current path (cairo_text_path() 
cairo function), while Cairo.DrawText() draws them directly 
(cairo_show_text() cairo function)

Regards,

-- 
Benoît Minisini




More information about the User mailing list