The macro with-print-job
creates a print job which prints to
printer
. If
printer
is not specified, the default printer is used. The macro binds
var
to a graphics port object, and printing is performed by using Graphics Ports operations to draw the object.
If
pane
is non-nil 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 the with-print-job
so all drawing operations draw to the printer instead of
pane
. This can be useful when implementing printing by modifying existing redisplay code that is written expecting an output-pane. If pane is nil
,
var
is bound to a graphics port of type printer-port, which is alive only inside the body of with-print-job
, and sends any drawing into it to the printer.
jobname
is the name of the print job. The default value is nil
, meaning that the name "Document" is used.
The actual printing is done by using one of the macros with-document-pages or with-page, within the scope of with-print-job.
owner
specifies the owner of the printer port object, which calls to port-owner will return. This has an effect only when
pane
is nil
.
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+. If
pane
is supplied, then
pane
determines the print job's
drawing-mode
, otherwise the default value of
drawing-mode
is :quality
.
For more information about drawing-mode , see The drawing mode and anti-aliasing.
(example-edit-file "capi/graphics/metafile")
(example-edit-file "capi/printing/fit-to-page")
(example-edit-file "capi/printing/multi-page")
(example-edit-file "capi/printing/page-on-demand")
port-owner
printer-port-handle
printer-port-supports-p
set-printer-options
with-document-pages
with-page
with-page-transform
Printing from the CAPI—the Hardcopy API
Drawing - Graphics Ports
CAPI User Guide and Reference Manual (Unix version) - 3 Aug 2017