with-external-metafile (
var
&key
pane
bounds
format
pathname
drawing-mode
) &body
body
=> nil
A variable.
A graphics port, or
nil
.
A list of four integers. Can also be
nil
on Microsoft Windows.
One of the keywords
:enhanced
,
:enhanced-plus
,
:enhanced-gdi
and
:windows
.
A pathname or string.
One of the keywords
:compatible
and
:quality
.
Code containing Graphic Ports operations that draw to var .
The macro
with-external-metafile
creates a metafile at the location given by
pathname
containing records corresponding to the Graphics Ports operations in
body
that draw to
var
.
On Microsoft Windows the metafile is a device-independent format for storing pictures. For more information about metafiles, see the Microsoft documentation.
On Cocoa and GTK+ the metafile format is PDF.
If
pane
is
nil
, the macro binds
var
to a graphics port object representing the metafile. If
pane
is non-nil then it must be an instance of output-pane or a subclass. In this case
var
is bound to
pane
, and
pane
is modified within the dynamic extent of
with-external-metafile
so all drawing operations draw to the metafile instead of
pane
. This can be useful when reusing existing redisplay code that is written expecting an output-pane. The default value of pane is
nil
.
If
bounds
is
nil
the metafile size will be computed from the drawing done within the body. This value is not allowed on Cocoa.
If bounds is non-nil (required on Cocoa), it should be a list of integers specifying the coordinate rectangle ( x y width height ) that the metafile contains.
format is used only on Microsoft Windows. It can be one of:
Generate an Enhanced-metafile file containing "dual drawing" both in GDI+ and GDI.
Generate an Enhanced-metafile file containing drawing only in GDI+.
Generate an Enhanced-metafile file containing drawing only in GDI.
Generate a Windows-metafile.
The default value of
format
is
:enhanced
.
When
drawing-mode
is
:compatible
(rather than the default value
:quality
)
:enhanced
and
:enhanced-plus
behave like
:enhanced-gdi
.
Note:
GDI+ gives the best quality, so normally that is what you would want. However some programs may be able to display only GDI (and not GDI+), which is why the default is dual drawing. This however generates a larger file and is presumably slightly slower, so if you are sure that the file will be used only by programs that can draw GDI+ emf files (sometimes called EMF+), you can use
format
:enhanced-plus
.
On Cocoa the metafile format is always PDF as a single page, and the format argument is ignored.
pathname
specifies the filename of the metafile. If its
pathname-type
is
nil
, then the file extension
"EMF"
is used for an Enhanced-metafile, or
"WMF"
for a Windows-metafile.
drawing-mode
should be either
:compatible
which causes drawing to be the same as in LispWorks 6.0, or
:quality
which causes all the drawing to be transformed properly, and allows control over anti-aliasing on Microsoft Windows and GTK+. The default value of
drawing-mode
is
:quality
.
For more information about drawing-mode , see "Drawing mode and anti-aliasing" in the CAPI User Guide .
CAPI Reference Manual - 15 Dec 2011