<div style="color:black;font: 10pt arial;">
<div> <font size="2"><br>
Cairo can get the width and height of the inked part of a drawing which makes the drawing easy to position in another surface. This will work with a bounded or unbounded recording surface.<br>
<br>
If the recording surface is unbounded and the background gets painted... then it isn't going to make much sense.<br>
<br>
If the recording surface is bounded and the background is painted, then the ink extents will be the surface bounds.<br>
<br>
To get the extents of the inked drawing, don't paint the recording surface background. Try something like the following.<br>
<br>
Eric<br>
<br>
//Paint the background white in recording surface.<br>
//cairo_set_source_rgba(cr1, 1.0, 1.0, 1.0, 1.0);<br>
//cairo_paint(cr1);<br>
<br>
...<br>
cairo_line_to(cr1, 200.0, 0.0);<br>
cairo_stroke(cr1); <br>
<br>
//Set drawing extents box.<br>
double x, y, extents_x, extents_y;<br>
cairo_set_source_rgba(cr1, 1.0, 0.0, 1.0, 1.0); <br>
cairo_recording_surface_ink_extents(surface1, &x, &y, &extents_x, &extents_y);<br>
printf("%f %f %f %f\n", x, y, extents_x, extents_y);<br>
cairo_rectangle(cr1, x, y, extents_x, extents_y);<br>
cairo_stroke(cr1);<br>
...</font><br>
</div>

<div> <br>
</div>
<br>
</div>