Hi Mikhail,<br><br>I think my previous mail did not reach you and the list, so here is its contents again.<br><br>I have ran into the same (or just a similar) problem. After some
debugging I have found that printing surfaces query the clip box on
creation and later drop all glyphs that are outside that clip region
(plus some margin). The dropping is specific to fonts (and I think
also for bitmap fallback, but I am not sure) and is not done for e.g.,
paths.<br>
<br>Specifically, in cairo-win32-printing-surface.c the function cairo_win32_printing_surface_<div id="content4" style="display: block;" class="thread-content">create()
calls the GetClipBox() windows GDI call to set the surface.extent field
of the surface under creation. This is sometimes too small -as you say coming from device metrics-, so glyph
dropping will happen. I found no way yet to create a metafile context which did not have this limitation. I also think this is the reason why one cannot draw on a device context created from an old format Windows metafile (wmf) - such contexts cannot return a clip box, so surface creation fails.<br>

<br>The glyph dropping happens in _cairo_gstate_transform_glyphs_to_backend(),
which uses surface.extent to see which glyphs to drop. This function
does not drop any glyph if you call it with num_transformed_glyphs=NULL.<br><br>
So what I did to avoid this problem is to change the call to this
function to set this parameter to NULL and recompiled cairo. Voila, it
works.<br><br>I am new to cairo and don&#39;t really know whom to report such bugs (which may not be bugs in reality), so any help here is appreciated. Maybe these should be discussed on this list.<br><br>Zoltán<br></div>
<br><br><div class="gmail_quote">2009/12/18 Kozhevnikov Mikhail <span dir="ltr">&lt;<a href="mailto:mikhailkozhevnikov@yandex.ru">mikhailkozhevnikov@yandex.ru</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hello,<br>
<br>
Anybody knows the way to prevent text clipping when drawing to windows metafile?<br>
<br>
Cairo (or GDI?) seems to use the current device metrics (i.e. 1600x900 for my monitor) to clip the text in a metafile. That is, I can not create a metafile of, say, 2000x2000 - the text will be clipped out.<br>
<br>
I&#39;ve tried cairo_reset_clip() and some WinAPI calls, e.g. SetViewportExtEx, SetWindowsExtEx, SelectClipRgn, but they make no difference.<br>
<br>
Thanks in advance,<br>
(and sorry for bothering everybody with windows metafiles)<br>
Mikhail.<br>
<font color="#888888">--<br>
cairo mailing list<br>
<a href="mailto:cairo@cairographics.org">cairo@cairographics.org</a><br>
<a href="http://lists.cairographics.org/mailman/listinfo/cairo" target="_blank">http://lists.cairographics.org/mailman/listinfo/cairo</a><br>
</font></blockquote></div><br>