60 lines
2.5 KiB
TeX
60 lines
2.5 KiB
TeX
|
\section{Printing overview}\label{printingoverview}
|
||
|
|
||
|
Classes: \helpref{wxPrintout}{wxprintout}, \helpref{wxPrinter}{wxprinter},\rtfsp
|
||
|
\helpref{wxPrintPreview}{wxprintpreview}, \helpref{wxPrinterDC}{wxprinterdc},\rtfsp
|
||
|
\helpref{wxPrintDialog}{wxprintdialog}.
|
||
|
|
||
|
The printing framework relies on the application to provide classes
|
||
|
whose member functions can respond to particular requests, such
|
||
|
as `print this page' or `does this page exist in the document?'.
|
||
|
This method allows wxWindows to take over the housekeeping duties of
|
||
|
turning preview pages, calling the print dialog box, creating
|
||
|
the printer device context, and so on: the application can concentrate
|
||
|
on the rendering of the information onto a device context.
|
||
|
The printing framework is mainly a Windows feature; PostScript
|
||
|
support under non-Windows platforms is emerging but has not been rigorously tested.
|
||
|
|
||
|
The \helpref{document/view framework}{docviewoverview} creates a default wxPrintout
|
||
|
object for every view, calling wxView::OnDraw to achieve a
|
||
|
prepackaged print/preview facility.
|
||
|
|
||
|
A document's printing ability is represented in an application by a
|
||
|
derived wxPrintout class. This class prints a page on request, and can
|
||
|
be passed to the Print function of a wxPrinter object to actually print
|
||
|
the document, or can be passed to a wxPrintPreview object to initiate
|
||
|
previewing. The following code (from the printing sample) shows how easy
|
||
|
it is to initiate printing, previewing and the print setup dialog, once the wxPrintout
|
||
|
functionality has been defined. Notice the use of MyPrintout for
|
||
|
both printing and previewing. All the preview user interface functionality
|
||
|
is taken care of by wxWindows. For details on how MyPrintout is defined,
|
||
|
please look at the printout sample code.
|
||
|
|
||
|
\begin{verbatim}
|
||
|
case WXPRINT_PRINT:
|
||
|
{
|
||
|
wxPrinter printer;
|
||
|
MyPrintout printout("My printout");
|
||
|
printer.Print(this, &printout, TRUE);
|
||
|
break;
|
||
|
}
|
||
|
case WXPRINT_PREVIEW:
|
||
|
{
|
||
|
// Pass two printout objects: for preview, and possible printing.
|
||
|
wxPrintPreview *preview = new wxPrintPreview(new MyPrintout, new MyPrintout);
|
||
|
wxPreviewFrame *frame = new wxPreviewFrame(preview, this, "Demo Print Preview", 100, 100, 600, 650);
|
||
|
frame->Centre(wxBOTH);
|
||
|
frame->Initialize();
|
||
|
frame->Show(TRUE);
|
||
|
break;
|
||
|
}
|
||
|
case WXPRINT_PRINT_SETUP:
|
||
|
{
|
||
|
wxPrintDialog printerDialog(this);
|
||
|
printerDialog.GetPrintData().SetSetupDialog(TRUE);
|
||
|
printerDialog.Show(TRUE);
|
||
|
break;
|
||
|
}
|
||
|
\end{verbatim}
|
||
|
|
||
|
|