[Gambas-user] Cairo library - printing text

Rolf-Werner Eilert eilert-sprachen at ...221...
Wed Aug 14 12:26:06 CEST 2013



Am 14.08.2013 10:11, schrieb Benoît Minisini:
> 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,
>

Just tried it, this runs well, but how to set font-name and font-size 
for .Text and .DrawText?

Rolf




More information about the User mailing list