]> git.saurik.com Git - wxWidgets.git/blame_incremental - docs/latex/wx/print.tex
Reverted renderer changes and just use window variant within renderer functions
[wxWidgets.git] / docs / latex / wx / print.tex
... / ...
CommitLineData
1\section{\class{wxPrintData}}\label{wxprintdata}
2
3This class holds a variety of information related to printers and
4printer device contexts. This class is used to create a wxPrinterDC
5and a wxPostScriptDC. It is also used as a data member of wxPrintDialogData
6and wxPageSetupDialogData, as part of the mechanism for transferring data
7between the print dialogs and the application.
8
9\wxheading{Derived from}
10
11\helpref{wxObject}{wxobject}
12
13\wxheading{Include files}
14
15<wx/cmndata.h>
16
17\wxheading{See also}
18
19\helpref{Printing framework overview}{printingoverview},
20\helpref{wxPrintDialog}{wxprintdialog},
21\helpref{wxPageSetupDialog}{wxpagesetupdialog},
22\helpref{wxPrintDialogData}{wxprintdialogdata},
23\helpref{wxPageSetupDialogData}{wxpagesetupdialogdata},
24\helpref{wxPrintDialog Overview}{wxprintdialogoverview},
25\helpref{wxPrinterDC}{wxprinterdc},
26\helpref{wxPostScriptDC}{wxpostscriptdc}
27
28\wxheading{Remarks}
29
30The following functions are specific to PostScript printing
31and have not yet been documented:
32
33\begin{verbatim}
34const wxString& GetPrinterCommand() const ;
35const wxString& GetPrinterOptions() const ;
36const wxString& GetPreviewCommand() const ;
37const wxString& GetFilename() const ;
38const wxString& GetFontMetricPath() const ;
39double GetPrinterScaleX() const ;
40double GetPrinterScaleY() const ;
41long GetPrinterTranslateX() const ;
42long GetPrinterTranslateY() const ;
43// wxPRINT_MODE_PREVIEW, wxPRINT_MODE_FILE, wxPRINT_MODE_PRINTER
44wxPrintMode GetPrintMode() const ;
45
46void SetPrinterCommand(const wxString& command) ;
47void SetPrinterOptions(const wxString& options) ;
48void SetPreviewCommand(const wxString& command) ;
49void SetFilename(const wxString& filename) ;
50void SetFontMetricPath(const wxString& path) ;
51void SetPrinterScaleX(double x) ;
52void SetPrinterScaleY(double y) ;
53void SetPrinterScaling(double x, double y) ;
54void SetPrinterTranslateX(long x) ;
55void SetPrinterTranslateY(long y) ;
56void SetPrinterTranslation(long x, long y) ;
57void SetPrintMode(wxPrintMode printMode) ;
58\end{verbatim}
59
60\latexignore{\rtfignore{\wxheading{Members}}}
61
62
63\membersection{wxPrintData::wxPrintData}\label{wxprintdatactor}
64
65\func{}{wxPrintData}{\void}
66
67Default constructor.
68
69\func{}{wxPrintData}{\param{const wxPrintData\&}{ data}}
70
71Copy constructor.
72
73
74\membersection{wxPrintData::\destruct{wxPrintData}}\label{wxprintdatadtor}
75
76\func{}{\destruct{wxPrintData}}{\void}
77
78Destructor.
79
80
81\membersection{wxPrintData::GetCollate}\label{wxprintdatagetcollate}
82
83\constfunc{bool}{GetCollate}{\void}
84
85Returns true if collation is on.
86
87
88\membersection{wxPrintData::GetBin}\label{wxprintdatagetbin}
89
90\constfunc{wxPrintBin}{GetBin}{\void}
91
92Returns the current bin (papersource). By default, the system is left to select
93the bin (\texttt{wxPRINTBIN\_DEFAULT} is returned).
94
95See \helpref{SetBin()}{wxprintdatasetbin} for the full list of bin values.
96
97
98\membersection{wxPrintData::GetColour}\label{wxprintdatagetcolour}
99
100\constfunc{bool}{GetColour}{\void}
101
102Returns true if colour printing is on.
103
104
105\membersection{wxPrintData::GetDuplex}\label{wxprintdatagetduplex}
106
107\constfunc{wxDuplexMode}{GetDuplex}{\void}
108
109Returns the duplex mode. One of wxDUPLEX\_SIMPLEX, wxDUPLEX\_HORIZONTAL, wxDUPLEX\_VERTICAL.
110
111
112\membersection{wxPrintData::GetNoCopies}\label{wxprintdatagetnocopies}
113
114\constfunc{int}{GetNoCopies}{\void}
115
116Returns the number of copies requested by the user.
117
118
119\membersection{wxPrintData::GetOrientation}\label{wxprintdatagetorientation}
120
121\constfunc{int}{GetOrientation}{\void}
122
123Gets the orientation. This can be wxLANDSCAPE or wxPORTRAIT.
124
125
126\membersection{wxPrintData::GetPaperId}\label{wxprintdatagetpaperid}
127
128\constfunc{wxPaperSize}{GetPaperId}{\void}
129
130Returns the paper size id. For more information, see \helpref{wxPrintData::SetPaperId}{wxprintdatasetpaperid}.
131
132
133\membersection{wxPrintData::GetPrinterName}\label{wxprintdatagetprintername}
134
135\constfunc{const wxString\&}{GetPrinterName}{\void}
136
137Returns the printer name. If the printer name is the empty string, it indicates that the default
138printer should be used.
139
140
141\membersection{wxPrintData::GetQuality}\label{wxprintdatagetquality}
142
143\constfunc{wxPrintQuality}{GetQuality}{\void}
144
145Returns the current print quality. This can be a positive integer, denoting the number of dots per inch, or
146one of the following identifiers:
147
148\begin{verbatim}
149wxPRINT_QUALITY_HIGH
150wxPRINT_QUALITY_MEDIUM
151wxPRINT_QUALITY_LOW
152wxPRINT_QUALITY_DRAFT
153\end{verbatim}
154
155On input you should pass one of these identifiers, but on return you may get back a positive integer
156indicating the current resolution setting.
157
158
159\membersection{wxPrintData::IsOk}\label{wxprintdataisok}
160
161\constfunc{bool}{IsOk}{\void}
162
163Returns true if the print data is valid for using in print dialogs.
164This can return false on Windows if the current printer is not set, for example.
165On all other platforms, it returns true.
166
167
168\membersection{wxPrintData::SetBin}\label{wxprintdatasetbin}
169
170\func{void}{SetBin}{\param{wxPrintBin }{flag}}
171
172Sets the current bin. Possible values are:
173
174\small{
175\begin{verbatim}
176enum wxPrintBin
177{
178 wxPRINTBIN_DEFAULT,
179
180 wxPRINTBIN_ONLYONE,
181 wxPRINTBIN_LOWER,
182 wxPRINTBIN_MIDDLE,
183 wxPRINTBIN_MANUAL,
184 wxPRINTBIN_ENVELOPE,
185 wxPRINTBIN_ENVMANUAL,
186 wxPRINTBIN_AUTO,
187 wxPRINTBIN_TRACTOR,
188 wxPRINTBIN_SMALLFMT,
189 wxPRINTBIN_LARGEFMT,
190 wxPRINTBIN_LARGECAPACITY,
191 wxPRINTBIN_CASSETTE,
192 wxPRINTBIN_FORMSOURCE,
193
194 wxPRINTBIN_USER,
195};
196\end{verbatim}
197}
198
199
200\membersection{wxPrintData::SetCollate}\label{wxprintdatasetcollate}
201
202\func{void}{SetCollate}{\param{bool }{flag}}
203
204Sets collation to on or off.
205
206
207\membersection{wxPrintData::SetColour}\label{wxprintdatasetcolour}
208
209\func{void}{SetColour}{\param{bool }{flag}}
210
211Sets colour printing on or off.
212
213
214\membersection{wxPrintData::SetDuplex}\label{wxprintdatasetduplex}
215
216\func{void}{SetDuplex}{\param{wxDuplexMode}{ mode}}
217
218Returns the duplex mode. One of wxDUPLEX\_SIMPLEX, wxDUPLEX\_HORIZONTAL, wxDUPLEX\_VERTICAL.
219
220
221\membersection{wxPrintData::SetNoCopies}\label{wxprintdatasetnocopies}
222
223\func{void}{SetNoCopies}{\param{int }{n}}
224
225Sets the default number of copies to be printed out.
226
227
228\membersection{wxPrintData::SetOrientation}\label{wxprintdatasetorientation}
229
230\func{void}{SetOrientation}{\param{int }{orientation}}
231
232Sets the orientation. This can be wxLANDSCAPE or wxPORTRAIT.
233
234
235\membersection{wxPrintData::SetPaperId}\label{wxprintdatasetpaperid}
236
237\func{void}{SetPaperId}{\param{wxPaperSize}{ paperId}}
238
239\index{wxPaperSize}Sets the paper id. This indicates the type of paper to be used. For a mapping between
240paper id, paper size and string name, see wxPrintPaperDatabase in {\tt paper.h} (not yet documented).
241
242{\it paperId} can be one of:
243
244{\small
245\begin{verbatim}
246 wxPAPER_NONE, // Use specific dimensions
247 wxPAPER_LETTER, // Letter, 8 1/2 by 11 inches
248 wxPAPER_LEGAL, // Legal, 8 1/2 by 14 inches
249 wxPAPER_A4, // A4 Sheet, 210 by 297 millimeters
250 wxPAPER_CSHEET, // C Sheet, 17 by 22 inches
251 wxPAPER_DSHEET, // D Sheet, 22 by 34 inches
252 wxPAPER_ESHEET, // E Sheet, 34 by 44 inches
253 wxPAPER_LETTERSMALL, // Letter Small, 8 1/2 by 11 inches
254 wxPAPER_TABLOID, // Tabloid, 11 by 17 inches
255 wxPAPER_LEDGER, // Ledger, 17 by 11 inches
256 wxPAPER_STATEMENT, // Statement, 5 1/2 by 8 1/2 inches
257 wxPAPER_EXECUTIVE, // Executive, 7 1/4 by 10 1/2 inches
258 wxPAPER_A3, // A3 sheet, 297 by 420 millimeters
259 wxPAPER_A4SMALL, // A4 small sheet, 210 by 297 millimeters
260 wxPAPER_A5, // A5 sheet, 148 by 210 millimeters
261 wxPAPER_B4, // B4 sheet, 250 by 354 millimeters
262 wxPAPER_B5, // B5 sheet, 182-by-257-millimeter paper
263 wxPAPER_FOLIO, // Folio, 8-1/2-by-13-inch paper
264 wxPAPER_QUARTO, // Quarto, 215-by-275-millimeter paper
265 wxPAPER_10X14, // 10-by-14-inch sheet
266 wxPAPER_11X17, // 11-by-17-inch sheet
267 wxPAPER_NOTE, // Note, 8 1/2 by 11 inches
268 wxPAPER_ENV_9, // #9 Envelope, 3 7/8 by 8 7/8 inches
269 wxPAPER_ENV_10, // #10 Envelope, 4 1/8 by 9 1/2 inches
270 wxPAPER_ENV_11, // #11 Envelope, 4 1/2 by 10 3/8 inches
271 wxPAPER_ENV_12, // #12 Envelope, 4 3/4 by 11 inches
272 wxPAPER_ENV_14, // #14 Envelope, 5 by 11 1/2 inches
273 wxPAPER_ENV_DL, // DL Envelope, 110 by 220 millimeters
274 wxPAPER_ENV_C5, // C5 Envelope, 162 by 229 millimeters
275 wxPAPER_ENV_C3, // C3 Envelope, 324 by 458 millimeters
276 wxPAPER_ENV_C4, // C4 Envelope, 229 by 324 millimeters
277 wxPAPER_ENV_C6, // C6 Envelope, 114 by 162 millimeters
278 wxPAPER_ENV_C65, // C65 Envelope, 114 by 229 millimeters
279 wxPAPER_ENV_B4, // B4 Envelope, 250 by 353 millimeters
280 wxPAPER_ENV_B5, // B5 Envelope, 176 by 250 millimeters
281 wxPAPER_ENV_B6, // B6 Envelope, 176 by 125 millimeters
282 wxPAPER_ENV_ITALY, // Italy Envelope, 110 by 230 millimeters
283 wxPAPER_ENV_MONARCH, // Monarch Envelope, 3 7/8 by 7 1/2 inches
284 wxPAPER_ENV_PERSONAL, // 6 3/4 Envelope, 3 5/8 by 6 1/2 inches
285 wxPAPER_FANFOLD_US, // US Std Fanfold, 14 7/8 by 11 inches
286 wxPAPER_FANFOLD_STD_GERMAN, // German Std Fanfold, 8 1/2 by 12 inches
287 wxPAPER_FANFOLD_LGL_GERMAN, // German Legal Fanfold, 8 1/2 by 13 inches
288
289Windows 95 only:
290 wxPAPER_ISO_B4, // B4 (ISO) 250 x 353 mm
291 wxPAPER_JAPANESE_POSTCARD, // Japanese Postcard 100 x 148 mm
292 wxPAPER_9X11, // 9 x 11 in
293 wxPAPER_10X11, // 10 x 11 in
294 wxPAPER_15X11, // 15 x 11 in
295 wxPAPER_ENV_INVITE, // Envelope Invite 220 x 220 mm
296 wxPAPER_LETTER_EXTRA, // Letter Extra 9 \275 x 12 in
297 wxPAPER_LEGAL_EXTRA, // Legal Extra 9 \275 x 15 in
298 wxPAPER_TABLOID_EXTRA, // Tabloid Extra 11.69 x 18 in
299 wxPAPER_A4_EXTRA, // A4 Extra 9.27 x 12.69 in
300 wxPAPER_LETTER_TRANSVERSE, // Letter Transverse 8 \275 x 11 in
301 wxPAPER_A4_TRANSVERSE, // A4 Transverse 210 x 297 mm
302 wxPAPER_LETTER_EXTRA_TRANSVERSE, // Letter Extra Transverse 9\275 x 12 in
303 wxPAPER_A_PLUS, // SuperA/SuperA/A4 227 x 356 mm
304 wxPAPER_B_PLUS, // SuperB/SuperB/A3 305 x 487 mm
305 wxPAPER_LETTER_PLUS, // Letter Plus 8.5 x 12.69 in
306 wxPAPER_A4_PLUS, // A4 Plus 210 x 330 mm
307 wxPAPER_A5_TRANSVERSE, // A5 Transverse 148 x 210 mm
308 wxPAPER_B5_TRANSVERSE, // B5 (JIS) Transverse 182 x 257 mm
309 wxPAPER_A3_EXTRA, // A3 Extra 322 x 445 mm
310 wxPAPER_A5_EXTRA, // A5 Extra 174 x 235 mm
311 wxPAPER_B5_EXTRA, // B5 (ISO) Extra 201 x 276 mm
312 wxPAPER_A2, // A2 420 x 594 mm
313 wxPAPER_A3_TRANSVERSE, // A3 Transverse 297 x 420 mm
314 wxPAPER_A3_EXTRA_TRANSVERSE // A3 Extra Transverse 322 x 445 mm
315\end{verbatim}
316}
317
318
319\membersection{wxPrintData::SetPrinterName}\label{wxprintdatasetprintername}
320
321\func{void}{SetPrinterName}{\param{const wxString\& }{printerName}}
322
323Sets the printer name. This can be the empty string to indicate that the default
324printer should be used.
325
326
327\membersection{wxPrintData::SetQuality}\label{wxprintdatasetquality}
328
329\func{void}{SetQuality}{\param{wxPrintQuality}{ quality}}
330
331Sets the desired print quality. This can be a positive integer, denoting the number of dots per inch, or
332one of the following identifiers:
333
334\begin{verbatim}
335wxPRINT_QUALITY_HIGH
336wxPRINT_QUALITY_MEDIUM
337wxPRINT_QUALITY_LOW
338wxPRINT_QUALITY_DRAFT
339\end{verbatim}
340
341On input you should pass one of these identifiers, but on return you may get back a positive integer
342indicating the current resolution setting.
343
344
345\membersection{wxPrintData::operator $=$}\label{wxprintdataassign}
346
347\func{void}{operator $=$}{\param{const wxPrintData\&}{ data}}
348
349Assigns print data to this object.
350
351\func{void}{operator $=$}{\param{const wxPrintSetupData\&}{ data}}
352
353Assigns print setup data to this object. wxPrintSetupData is deprecated,
354but retained for backward compatibility.
355
356\section{\class{wxPrintDialog}}\label{wxprintdialog}
357
358This class represents the print and print setup common dialogs.
359You may obtain a \helpref{wxPrinterDC}{wxprinterdc} device context from
360a successfully dismissed print dialog.
361
362\wxheading{Derived from}
363
364\helpref{wxDialog}{wxdialog}\\
365\helpref{wxWindow}{wxwindow}\\
366\helpref{wxEvtHandler}{wxevthandler}\\
367\helpref{wxObject}{wxobject}
368
369\wxheading{Include files}
370
371<wx/printdlg.h>
372
373\wxheading{See also}
374
375\helpref{Printing framework overview}{printingoverview},
376\helpref{wxPrintDialog Overview}{wxprintdialogoverview}
377
378\latexignore{\rtfignore{\wxheading{Members}}}
379
380
381\membersection{wxPrintDialog::wxPrintDialog}\label{wxprintdialogctor}
382
383\func{}{wxPrintDialog}{\param{wxWindow* }{parent}, \param{wxPrintDialogData* }{data = NULL}}
384
385Constructor. Pass a parent window, and optionally a pointer to a block of print
386data, which will be copied to the print dialog's print data.
387
388\wxheading{See also}
389
390\helpref{wxPrintDialogData}{wxprintdialogdata}
391
392
393\membersection{wxPrintDialog::\destruct{wxPrintDialog}}\label{wxprintdialogdtor}
394
395\func{}{\destruct{wxPrintDialog}}{\void}
396
397Destructor. If wxPrintDialog::GetPrintDC has {\it not} been called,
398the device context obtained by the dialog (if any) will be deleted.
399
400
401\membersection{wxPrintDialog::GetPrintDialogData}\label{wxprintdialoggetprintdialogdata}
402
403\func{wxPrintDialogData\&}{GetPrintDialogData}{\void}
404
405Returns the \helpref{print dialog data}{wxprintdialogdata} associated with the print dialog.
406
407
408\membersection{wxPrintDialog::GetPrintDC}\label{wxprintdialoggetprintdc}
409
410\func{wxDC* }{GetPrintDC}{\void}
411
412Returns the device context created by the print dialog, if any.
413When this function has been called, the ownership of the device context
414is transferred to the application, so it must then be deleted
415explicitly.
416
417
418\membersection{wxPrintDialog::ShowModal}\label{wxprintdialogshowmodal}
419
420\func{int}{ShowModal}{\void}
421
422Shows the dialog, returning wxID\_OK if the user pressed OK, and wxID\_CANCEL
423otherwise. After this function is called, a device context may
424be retrievable using \helpref{wxPrintDialog::GetPrintDC}{wxprintdialoggetprintdc}.
425
426\section{\class{wxPrintDialogData}}\label{wxprintdialogdata}
427
428This class holds information related to the visual characteristics of wxPrintDialog.
429It contains a wxPrintData object with underlying printing settings.
430
431\wxheading{Derived from}
432
433\helpref{wxObject}{wxobject}
434
435\wxheading{Include files}
436
437<wx/cmndata.h>
438
439\wxheading{See also}
440
441\helpref{Printing framework overview}{printingoverview},
442\helpref{wxPrintDialog}{wxprintdialog},
443\helpref{wxPrintDialog Overview}{wxprintdialogoverview}
444
445\latexignore{\rtfignore{\wxheading{Members}}}
446
447
448\membersection{wxPrintDialogData::wxPrintDialogData}\label{wxprintdialogdatactor}
449
450\func{}{wxPrintDialogData}{\void}
451
452Default constructor.
453
454\func{}{wxPrintDialogData}{\param{wxPrintDialogData\&}{ dialogData}}
455
456Copy constructor.
457
458\func{}{wxPrintDialogData}{\param{wxPrintData\&}{ printData}}
459
460Construct an object from a print dialog data object.
461
462
463\membersection{wxPrintDialogData::\destruct{wxPrintDialogData}}\label{wxprintdialogdatadtor}
464
465\func{}{\destruct{wxPrintDialogData}}{\void}
466
467Destructor.
468
469
470\membersection{wxPrintDialogData::EnableHelp}\label{wxprintdialogdataenablehelp}
471
472\func{void}{EnableHelp}{\param{bool }{flag}}
473
474Enables or disables the `Help' button.
475
476
477\membersection{wxPrintDialogData::EnablePageNumbers}\label{wxprintdialogdataenablepagenumbers}
478
479\func{void}{EnablePageNumbers}{\param{bool }{flag}}
480
481Enables or disables the `Page numbers' controls.
482
483
484\membersection{wxPrintDialogData::EnablePrintToFile}\label{wxprintdialogdataenableprinttofile}
485
486\func{void}{EnablePrintToFile}{\param{bool }{flag}}
487
488Enables or disables the `Print to file' checkbox.
489
490
491\membersection{wxPrintDialogData::EnableSelection}\label{wxprintdialogdataenableselection}
492
493\func{void}{EnableSelection}{\param{bool }{flag}}
494
495Enables or disables the `Selection' radio button.
496
497
498\membersection{wxPrintDialogData::GetAllPages}\label{wxprintdialogdatagetallpages}
499
500\constfunc{bool}{GetAllPages}{\void}
501
502Returns true if the user requested that all pages be printed.
503
504
505\membersection{wxPrintDialogData::GetCollate}\label{wxprintdialogdatagetcollate}
506
507\constfunc{bool}{GetCollate}{\void}
508
509Returns true if the user requested that the document(s) be collated.
510
511
512\membersection{wxPrintDialogData::GetFromPage}\label{wxprintdialogdatagetfrompage}
513
514\constfunc{int}{GetFromPage}{\void}
515
516Returns the {\it from} page number, as entered by the user.
517
518
519\membersection{wxPrintDialogData::GetMaxPage}\label{wxprintdialogdatagetmaxpage}
520
521\constfunc{int}{GetMaxPage}{\void}
522
523Returns the {\it maximum} page number.
524
525
526\membersection{wxPrintDialogData::GetMinPage}\label{wxprintdialogdatagetminpage}
527
528\constfunc{int}{GetMinPage}{\void}
529
530Returns the {\it minimum} page number.
531
532
533\membersection{wxPrintDialogData::GetNoCopies}\label{wxprintdialogdatagetnocopies}
534
535\constfunc{int}{GetNoCopies}{\void}
536
537Returns the number of copies requested by the user.
538
539
540\membersection{wxPrintDialogData::GetPrintData}\label{wxprintdialogdatagetprintdata}
541
542\func{wxPrintData\&}{GetPrintData}{\void}
543
544Returns a reference to the internal wxPrintData object.
545
546
547\membersection{wxPrintDialogData::GetPrintToFile}\label{wxprintdialogdatagetprinttofile}
548
549\constfunc{bool}{GetPrintToFile}{\void}
550
551Returns true if the user has selected printing to a file.
552
553
554\membersection{wxPrintDialogData::GetSelection}\label{wxprintdialogdatagetselection}
555
556\constfunc{bool}{GetSelection}{\void}
557
558Returns true if the user requested that the selection be printed (where 'selection' is
559a concept specific to the application).
560
561
562\membersection{wxPrintDialogData::GetToPage}\label{wxprintdialogdatagettopage}
563
564\constfunc{int}{GetToPage}{\void}
565
566Returns the {\it to} page number, as entered by the user.
567
568
569\membersection{wxPrintDialogData::IsOk}\label{wxprintdialogdataisok}
570
571\constfunc{bool}{IsOk}{\void}
572
573Returns true if the print data is valid for using in print dialogs.
574This can return false on Windows if the current printer is not set, for example.
575On all other platforms, it returns true.
576
577
578\membersection{wxPrintDialogData::SetCollate}\label{wxprintdialogdatasetcollate}
579
580\func{void}{SetCollate}{\param{bool }{flag}}
581
582Sets the 'Collate' checkbox to true or false.
583
584
585\membersection{wxPrintDialogData::SetFromPage}\label{wxprintdialogdatasetfrompage}
586
587\func{void}{SetFromPage}{\param{int }{page}}
588
589Sets the {\it from} page number.
590
591
592\membersection{wxPrintDialogData::SetMaxPage}\label{wxprintdialogdatasetmaxpage}
593
594\func{void}{SetMaxPage}{\param{int }{page}}
595
596Sets the {\it maximum} page number.
597
598
599\membersection{wxPrintDialogData::SetMinPage}\label{wxprintdialogdatasetminpage}
600
601\func{void}{SetMinPage}{\param{int }{page}}
602
603Sets the {\it minimum} page number.
604
605
606\membersection{wxPrintDialogData::SetNoCopies}\label{wxprintdialogdatasetnocopies}
607
608\func{void}{SetNoCopies}{\param{int }{n}}
609
610Sets the default number of copies the user has requested to be printed out.
611
612
613\membersection{wxPrintDialogData::SetPrintData}\label{wxprintdialogdatasetprintdata}
614
615\func{void}{SetPrintData}{\param{const wxPrintData\& }{printData}}
616
617Sets the internal wxPrintData.
618
619
620\membersection{wxPrintDialogData::SetPrintToFile}\label{wxprintdialogdatasetprinttofile}
621
622\func{void}{SetPrintToFile}{\param{bool }{flag}}
623
624Sets the 'Print to file' checkbox to true or false.
625
626
627\membersection{wxPrintDialogData::SetSelection}\label{wxprintdialogdatasetselection}
628
629\func{void}{SetSelection}{\param{bool}{ flag}}
630
631Selects the 'Selection' radio button. The effect of printing the selection depends on how the application
632implements this command, if at all.
633
634
635\membersection{wxPrintDialogData::SetSetupDialog}\label{wxprintdialogdatasetsetupdialog}
636
637\func{void}{SetSetupDialog}{\param{bool }{flag}}
638
639Determines whether the dialog to be shown will be the Print dialog
640(pass false) or Print Setup dialog (pass true).
641
642This function has been deprecated since version 2.5.4.
643
644\membersection{wxPrintDialogData::SetToPage}\label{wxprintdialogdatasettopage}
645
646\func{void}{SetToPage}{\param{int }{page}}
647
648Sets the {\it to} page number.
649
650
651\membersection{wxPrintDialogData::operator $=$}\label{wxprintdialogdataassign}
652
653\func{void}{operator $=$}{\param{const wxPrintData\&}{ data}}
654
655Assigns print data to this object.
656
657\func{void}{operator $=$}{\param{const wxPrintDialogData\&}{ data}}
658
659Assigns another print dialog data object to this object.
660
661\section{\class{wxPrinter}}\label{wxprinter}
662
663This class represents the Windows or PostScript printer, and is the vehicle through
664which printing may be launched by an application. Printing can also
665be achieved through using of lower functions and classes, but
666this and associated classes provide a more convenient and general
667method of printing.
668
669\wxheading{Derived from}
670
671\helpref{wxObject}{wxobject}
672
673\wxheading{Include files}
674
675<wx/print.h>
676
677\wxheading{See also}
678
679\helpref{Printing framework overview}{printingoverview},
680\helpref{wxPrinterDC}{wxprinterdc},
681\helpref{wxPrintDialog}{wxprintdialog},
682\helpref{wxPrintout}{wxprintout},
683\helpref{wxPrintPreview}{wxprintpreview}.
684
685\latexignore{\rtfignore{\wxheading{Members}}}
686
687
688\membersection{wxPrinter::wxPrinter}\label{wxprinterctor}
689
690\func{}{wxPrinter}{\param{wxPrintDialogData* }{data = NULL}}
691
692Constructor. Pass an optional pointer to a block of print
693dialog data, which will be copied to the printer object's local data.
694
695\wxheading{See also}
696
697\helpref{wxPrintDialogData}{wxprintdialogdata},
698\helpref{wxPrintData}{wxprintdata}
699
700
701
702\membersection{wxPrinter::CreateAbortWindow}\label{wxprintercreateabortwindow}
703
704\func{void}{CreateAbortWindow}{\param{wxWindow* }{parent}, \param{wxPrintout* }{printout}}
705
706Creates the default printing abort window, with a cancel button.
707
708
709\membersection{wxPrinter::GetAbort}\label{wxprintergetabort}
710
711\func{bool}{GetAbort}{\void}
712
713Returns true if the user has aborted the print job.
714
715
716\membersection{wxPrinter::GetLastError}\label{wxprintergetlasterror}
717
718\func{static wxPrinterError}{GetLastError}{\void}
719
720Return last error. Valid after calling \helpref{Print}{wxprinterprint},
721\helpref{PrintDialog}{wxprinterprintdialog} or
722\helpref{wxPrintPreview::Print}{wxprintpreviewprint}. These functions
723set last error to {\bf wxPRINTER\_NO\_ERROR} if no error happened.
724
725Returned value is one of the following:
726
727\twocolwidtha{7cm}
728\begin{twocollist}\itemsep=0pt
729\twocolitem{{\bf wxPRINTER\_NO\_ERROR}}{No error happened.}
730\twocolitem{{\bf wxPRINTER\_CANCELLED}}{The user cancelled printing.}
731\twocolitem{{\bf wxPRINTER\_ERROR}}{There was an error during printing.}
732\end{twocollist}
733
734
735
736\membersection{wxPrinter::GetPrintDialogData}\label{wxprintergetprintdialogdata}
737
738\func{wxPrintDialogData\&}{GetPrintDialogData}{\void}
739
740Returns the \helpref{print data}{wxprintdata} associated with the printer object.
741
742
743\membersection{wxPrinter::Print}\label{wxprinterprint}
744
745\func{bool}{Print}{\param{wxWindow *}{parent}, \param{wxPrintout *}{printout}, \param{bool }{prompt=true}}
746
747Starts the printing process. Provide a parent window, a user-defined wxPrintout object which controls
748the printing of a document, and whether the print dialog should be invoked first.
749
750Print could return false if there was a problem initializing the printer device context
751(current printer not set, for example) or the user cancelled printing. Call
752\helpref{wxPrinter::GetLastError}{wxprintergetlasterror} to get detailed
753information about the kind of the error.
754
755
756\membersection{wxPrinter::PrintDialog}\label{wxprinterprintdialog}
757
758\func{wxDC*}{PrintDialog}{\param{wxWindow *}{parent}}
759
760Invokes the print dialog. If successful (the user did not press Cancel
761and no error occurred), a suitable device context will be returned
762(otherwise NULL is returned -- call
763\helpref{wxPrinter::GetLastError}{wxprintergetlasterror} to get detailed
764information about the kind of the error).
765
766The application must delete this device context to avoid a memory leak.
767
768
769\membersection{wxPrinter::ReportError}\label{wxprinterreporterror}
770
771\func{void}{ReportError}{\param{wxWindow *}{parent}, \param{wxPrintout *}{printout}, \param{const wxString\& }{message}}
772
773Default error-reporting function.
774
775
776\membersection{wxPrinter::Setup}\label{wxprintersetup}
777
778\func{bool}{Setup}{\param{wxWindow *}{parent}}
779
780Invokes the print setup dialog. Note that the setup dialog is obsolete from
781Windows 95, though retained for backward compatibility.
782
783\section{\class{wxPrinterDC}}\label{wxprinterdc}
784
785A printer device context is specific to MSW and Mac, and allows access to any
786printer with a Windows or Macintosh driver. See \helpref{wxDC}{wxdc} for further
787information on device contexts, and \helpref{wxDC::GetSize}{wxdcgetsize} for
788advice on achieving the correct scaling for the page.
789
790\wxheading{Derived from}
791
792\helpref{wxDC}{wxdc}\\
793\helpref{wxObject}{wxdc}
794
795\wxheading{Include files}
796
797<wx/dcprint.h>
798
799\wxheading{See also}
800
801\helpref{Printing framework overview}{printingoverview},
802\helpref{wxDC}{wxdc}
803
804\latexignore{\rtfignore{\wxheading{Members}}}
805
806
807\membersection{wxPrinterDC::wxPrinterDC}\label{wxprinterdcctor}
808
809\func{}{wxPrinterDC}{\param{const wxPrintData\& }{printData}}
810
811Constructor. Pass a \helpref{wxPrintData}{wxprintdata} object with information
812necessary for setting up a suitable printer device context. This
813is the recommended way to construct a wxPrinterDC. Make sure you
814specify a reference to a \helpref{wxPrintData}{wxprintdata} object,
815not a pointer - you may not even get a warning if you pass a pointer
816instead.
817
818\func{}{wxPrinterDC}{\param{const wxString\& }{driver}, \param{const wxString\& }{device}, \param{const wxString\& }{output},
819 \param{const bool }{interactive = true}, \param{int }{orientation = wxPORTRAIT}}
820
821Constructor. With empty strings for the first three arguments, the default printer dialog is
822displayed. {\it device} indicates the type of printer and {\it output}
823is an optional file for printing to. The {\it driver} parameter is
824currently unused. Use the {\it Ok} member to test whether the
825constructor was successful in creating a usable device context.
826
827This constructor is deprecated and retained only for backward compatibility.
828
829\membersection{wxPrinterDC::GetPaperRect}\label{wxprinterdcgetpaperrect}
830
831\func{wxRect}{wxPrinterDC::GetPaperRect}{}
832
833Return the rectangle in device coordinates that corresponds to the full paper
834area, including the nonprinting regions of the paper. The point (0,0) in device
835coordinates is the top left corner of the page rectangle, which is the printable
836area on MSW and Mac. The coordinates of the top left corner of the paper
837rectangle will therefore have small negative values, while the bottom right
838coordinates will be somewhat larger than the values returned by
839\helpref{wxDC::GetSize}{wxdcgetsize}.
840
841
842\section{\class{wxPrintout}}\label{wxprintout}
843
844This class encapsulates the functionality of printing out an application
845document. A new class must be derived and members overridden to respond to calls
846such as OnPrintPage and HasPage and to render the print image onto an associated
847\helpref{wxDC}{wxdc}. Instances of this class are passed to wxPrinter::Print or
848to a wxPrintPreview object to initiate printing or previewing.
849
850Your derived wxPrintout is responsible for drawing both the preview image and
851the printed page. If your windows' drawing routines accept an arbitrary DC as an
852argument, you can re-use those routines within your wxPrintout subclass to draw
853the printout image. You may also add additional drawing elements within your
854wxPrintout subclass, like headers, footers, and/or page numbers. However, the
855image on the printed page will often differ from the image drawn on the screen,
856as will the print preview image -- not just in the presence of headers and
857footers, but typically in scale. A high-resolution printer presents a much
858larger drawing surface (i.e., a higher-resolution DC); a zoomed-out preview
859image presents a much smaller drawing surface (lower-resolution DC). By using
860the routines FitThisSizeToXXX() and/or MapScreenSizeToXXX() within your
861wxPrintout subclass to set the user scale and origin of the associated DC, you
862can easily use a single drawing routine to draw on your application's windows,
863to create the print preview image, and to create the printed paper image, and
864achieve a common appearance to the preview image and the printed page.
865
866
867\wxheading{Derived from}
868
869\helpref{wxObject}{wxobject}
870
871\wxheading{Include files}
872
873<wx/print.h>
874
875\wxheading{See also}
876
877\helpref{Printing framework overview}{printingoverview},
878\helpref{wxPrinterDC}{wxprinterdc},
879\helpref{wxPrintDialog}{wxprintdialog},
880\helpref{wxPageSetupDialog}{wxpagesetupdialog},
881\helpref{wxPrinter}{wxprinter},
882\helpref{wxPrintPreview}{wxprintpreview}
883
884\latexignore{\rtfignore{\wxheading{Members}}}
885
886
887\membersection{wxPrintout::wxPrintout}\label{wxprintoutctor}
888
889\func{}{wxPrintout}{\param{const wxString\& }{title = "Printout"}}
890
891Constructor. Pass an optional title argument - the current filename would be a good idea. This will appear in the printing list
892(at least in MSW)
893
894
895\membersection{wxPrintout::\destruct{wxPrintout}}\label{wxprintoutdtor}
896
897\func{}{\destruct{wxPrintout}}{\void}
898
899Destructor.
900
901
902\membersection{wxPrintout::GetDC}\label{wxprintoutgetdc}
903
904\func{wxDC *}{GetDC}{\void}
905
906Returns the device context associated with the printout (given to the printout at start of
907printing or previewing). This will be a wxPrinterDC if printing under Windows or Mac,
908a wxPostScriptDC if printing on other platforms, and a wxMemoryDC if previewing.
909
910
911\membersection{wxPrintout::GetPageInfo}\label{wxprintoutgetpageinfo}
912
913\func{void}{GetPageInfo}{\param{int *}{minPage}, \param{int *}{maxPage}, \param{int *}{pageFrom}, \param{int *}{pageTo}}
914
915Called by the framework to obtain information from the application about minimum
916and maximum page values that the user can select, and the required page range to
917be printed. By default this returns 1, 32000 for the page minimum and maximum
918values, and 1, 1 for the required page range.
919
920If {\it minPage} is zero, the page number controls in the print dialog will be disabled.
921
922\pythonnote{When this method is implemented in a derived Python class,
923it should be designed to take no parameters (other than the self
924reference) and to return a tuple of four integers.
925}
926
927\perlnote{When this method is overridden in a derived class,
928it must not take any parameters, and returns a 4-element list.
929}
930
931
932\membersection{wxPrintout::GetPageSizeMM}\label{wxprintoutgetpagesizemm}
933
934\func{void}{GetPageSizeMM}{\param{int *}{w}, \param{int *}{h}}
935
936Returns the size of the printer page in millimetres.
937
938\pythonnote{This method returns the output-only parameters as a tuple.}
939
940\perlnote{In wxPerl this method takes no arguments and returns a
9412-element list {\tt ( w, h )}}
942
943
944\membersection{wxPrintout::GetPageSizePixels}\label{wxprintoutgetpagesizepixels}
945
946\func{void}{GetPageSizePixels}{\param{int *}{w}, \param{int *}{h}}
947
948Returns the size of the printer page in pixels, called the \em{page rectangle}.
949The page rectangle has a top left corner at (0,0) and a bottom right corner at
950(w,h). These values may not be the same as the values returned from
951\helpref{wxDC::GetSize}{wxdcgetsize}; if the printout is being used for
952previewing, a memory device context is used, which uses a bitmap size reflecting
953the current preview zoom. The application must take this discrepancy into
954account if previewing is to be supported.
955
956\pythonnote{This method returns the output-only parameters as a tuple.}
957
958\perlnote{In wxPerl this method takes no arguments and returns a
9592-element list {\tt ( w, h )}}
960
961
962\membersection{wxPrintout::GetPaperRectPixels}\label{wxprintoutgetpaperrectpixels}
963
964\func{wxRect}{GetPaperRectPixels}{}
965
966Returns the rectangle that corresponds to the entire paper in pixels, called the
967\em{paper rectangle}. This distinction between paper rectangle and page
968rectangle reflects the fact that most printers cannot print all the way to the
969edge of the paper. The page rectangle is a rectangle whose top left corner is at
970(0,0) and whose width and height are given by
971\helpref{wxDC::GetPageSizePixels}{wxprintoutgetpagesizepixels}. On MSW and Mac,
972the page rectangle gives the printable area of the paper, while the paper
973rectangle represents the entire paper, including non-printable borders. Thus,
974the rectangle returned by GetPaperRectPixels will have a top left corner whose
975coordinates are small negative numbers and the bottom right corner will have
976values somewhat larger than the width and height given by
977\helpref{wxDC::GetPageSizePixels}{wxprintoutgetpagesizepixels}. On other
978platforms and for PostScript printing, the paper is treated as if its entire
979area were printable, so this function will return the same rectangle as the page
980rectangle.
981
982
983\membersection{wxPrintout::GetPPIPrinter}\label{wxprintoutgetppiprinter}
984
985\func{void}{GetPPIPrinter}{\param{int *}{w}, \param{int *}{h}}
986
987Returns the number of pixels per logical inch of the printer device context.
988Dividing the printer PPI by the screen PPI can give a suitable scaling factor
989for drawing text onto the printer. Remember to multiply this by a scaling factor
990to take the preview DC size into account. Or you can just use the
991FitThisSizeToXXX() and MapScreenSizeToXXX routines below, which do most of the
992scaling calculations for you.
993
994\pythonnote{This method returns the output-only parameters as a tuple.}
995
996\perlnote{In wxPerl this method takes no arguments and returns a
9972-element list {\tt ( w, h )}}
998
999
1000\membersection{wxPrintout::GetPPIScreen}\label{wxprintoutgetppiscreen}
1001
1002\func{void}{GetPPIScreen}{\param{int *}{w}, \param{int *}{h}}
1003
1004Returns the number of pixels per logical inch of the screen device context.
1005Dividing the printer PPI by the screen PPI can give a suitable scaling factor
1006for drawing text onto the printer. If you are doing your own scaling, remember
1007to multiply this by a scaling factor to take the preview DC size into account.
1008
1009
1010\membersection{wxPrintout::GetTitle}\label{wxprintoutgettitle}
1011
1012\func{wxString}{GetTitle}{\void}
1013
1014Returns the title of the printout
1015
1016\pythonnote{This method returns the output-only parameters as a tuple.}
1017
1018\perlnote{In wxPerl this method takes no arguments and returns a
10192-element list {\tt ( w, h )}}
1020
1021
1022\membersection{wxPrintout::HasPage}\label{wxprintouthaspage}
1023
1024\func{bool}{HasPage}{\param{int}{ pageNum}}
1025
1026Should be overridden to return true if the document has this page, or false
1027if not. Returning false signifies the end of the document. By default,
1028HasPage behaves as if the document has only one page.
1029
1030
1031\membersection{wxPrintout::IsPreview}\label{wxprintoutispreview}
1032
1033\func{bool}{IsPreview}{\void}
1034
1035Returns true if the printout is currently being used for previewing.
1036
1037
1038\membersection{wxPrintout::FitThisSizeToPaper}\label{wxprintoutfitthissizetopaper}
1039
1040\func{void}{FitThisSizeToPaper}{\param{const wxSize\& }{imageSize}}
1041
1042Set the user scale and device origin of the wxDC associated with this wxPrintout
1043so that the given image size fits entirely within the paper and the origin is at
1044the top left corner of the paper. Note that with most printers, the region
1045around the edges of the paper are not printable so that the edges of the image
1046could be cut off. Use this if you're managing your own page margins.
1047
1048\membersection{wxPrintout::FitThisSizeToPage}\label{wxprintoutfitthissizetopage}
1049
1050
1051\func{void}{FitThisSizeToPage}{\param{const wxSize\& }{imageSize}}
1052
1053Set the user scale and device origin of the wxDC associated with this wxPrintout
1054so that the given image size fits entirely within the page rectangle and the
1055origin is at the top left corner of the page rectangle. On MSW and Mac, the page
1056rectangle is the printable area of the page. On other platforms and PostScript
1057printing, the page rectangle is the entire paper. Use this if you want your
1058printed image as large as possible, but with the caveat that on some platforms,
1059portions of the image might be cut off at the edges.
1060
1061
1062\membersection{wxPrintout::FitThisSizeToPageMargins}\label{wxprintoutfitthissizetopagemargins}
1063
1064\func{void}{FitThisSizeToPageMargins}{\param{const wxSize\& }{imageSize}, \param{const wxPageSetupDialogData\& }{pageSetupData}}
1065
1066Set the user scale and device origin of the wxDC associated with this wxPrintout
1067so that the given image size fits entirely within the page margins set in the
1068given wxPageSetupDialogData object. This function provides the greatest
1069consistency across all platforms because it does not depend on having access to
1070the printable area of the paper. Note that on Mac, the native wxPageSetupDialog
1071does not let you set the page margins; you'll have to provide your own mechanism,
1072or you can use the Mac-only class wxMacPageMarginsDialog.
1073
1074
1075\membersection{wxPrintout::MapScreenSizeToPaper}\label{wxprintoutmapscreensizetopaper}
1076
1077\func{void}{MapScreenSizeToPaper}{}
1078
1079Set the user scale and device origin of the wxDC associated with this wxPrintout
1080so that the printed page matches the screen size as closely as possible
1081and the logical origin is in the top left corner of the paper rectangle.
1082That is,
1083a 100-pixel object on screen should appear at the same size on the printed page. (It
1084will, of course, be larger or smaller in the preview image, depending on the zoom
1085factor.) Use this if you want WYSIWYG behavior, e.g., in a text editor.
1086
1087
1088\membersection{wxPrintout::MapScreenSizeToPage}\label{wxprintoutmapscreensizetopage}
1089
1090\func{void}{MapScreenSizeToPage}{}
1091
1092This sets the user scale of the wxDC assocated with this wxPrintout to the same
1093scale as \helpref{MapScreenSizeToPaper}{wxprintoutmapscreensizetopaper} but sets
1094the logical origin to the top left corner of the page rectangle.
1095
1096
1097\membersection{wxPrintout::MapScreenSizeToPageMargins}\label{wxprintoutmapscreensizetopagemargins}
1098
1099\func{void}{MapScreenSizeToPageMargins}{\param{const wxPageSetupDialogData\& }{pageSetupData}}
1100
1101This sets the user scale of the wxDC assocated with this wxPrintout to the same
1102scale as
1103\helpref{MapScreenSizeToPageMargins}{wxprintoutmapscreensizetopagemargins} but
1104sets the logical origin to the top left corner of the page margins specified by
1105the given wxPageSetupDialogData object.
1106
1107
1108\membersection{wxPrintout::MapScreenSizeToDevice}\label{wxprintoutmapscreensizetodevice}
1109
1110\func{void}{MapScreenSizeToDevice}{}
1111
1112Set the user scale and device origin of the wxDC associated with this wxPrintout
1113so that one screen pixel maps to one device pixel on the DC. That is, the user
1114scale is set to (1,1) and the device origin is set to (0,0). Use this if you
1115want to do your own scaling prior to calling wxDC drawing calls, for example, if
1116your underlying model is floating-point and you want to achieve maximum drawing
1117precision on high-resolution printers. (Note that while the underlying drawing
1118model of Mac OS X is floating-point, wxWidgets's drawing model scales from integer
1119coordinates.) You can use the GetLogicalXXXRect() routines below to obtain the
1120paper rectangle, page rectangle, or page margins rectangle to perform your own scaling.
1121
1122
1123\membersection{wxPrintout::GetLogicalPaperRect}\label{wxprintoutgetlogicalpaperrect}
1124
1125\func{wxRect}{GetLogicalPaperRect}{}
1126
1127Return the rectangle corresponding to the paper in the associated wxDC's
1128logical coordinates for the current user scale and device origin.
1129
1130
1131\membersection{wxPrintout::GetLogicalPageRect}\label{wxprintoutgetlogicalpagerect}
1132
1133\func{wxRect}{GetLogicalPageRect}{}
1134
1135Return the rectangle corresponding to the page in the associated wxDC's
1136logical coordinates for the current user scale and device origin.
1137On MSW and Mac, this will be the printable area of the paper. On other platforms
1138and PostScript printing, this will be the full paper rectangle.
1139
1140
1141\membersection{wxPrintout::GetLogicalPageMarginsRect}\label{wxprintoutgetlogicalpagemarginsrect}
1142
1143\func{wxRect}{GetLogicalPageMarginsRect}{\param{const wxPageSetupDialogData\& }{pageSetupData}}
1144
1145Return the rectangle corresponding to the page margins specified by the given
1146wxPageSetupDialogData object in the associated wxDC's logical coordinates for the
1147current user scale and device origin. The page margins are specified
1148with respect to the edges of the paper on all platforms.
1149
1150
1151\membersection{wxPrintout::SetLogicalOrigin}\label{wxprintoutsetlogicalorigin}
1152
1153\func{void}{SetLogicalOrigin}{\param{wxCoord }{x}, \param{wxCoord }{y}}
1154
1155Set the device origin of the associated wxDC so that the current logical point
1156becomes the new logical origin.
1157
1158
1159\membersection{wxPrintout::OffsetLogicalOrigin}\label{wxprintoutoffsetlogicalorigin}
1160
1161\func{void}{OffsetLogicalOrigin}{\param{wxCoord }{xoff}, \param{wxCoord }{yoff}}
1162
1163Shift the device origin by an amount specified in logical coordinates.
1164
1165
1166\membersection{wxPrintout::OnBeginDocument}\label{wxprintoutonbegindocument}
1167
1168\func{bool}{OnBeginDocument}{\param{int}{ startPage}, \param{int}{ endPage}}
1169
1170Called by the framework at the start of document printing. Return false from
1171this function cancels the print job. OnBeginDocument is called once for every
1172copy printed.
1173
1174The base wxPrintout::OnBeginDocument {\it must} be called (and the return value
1175checked) from within the overridden function, since it calls wxDC::StartDoc.
1176
1177\pythonnote{If this method is overridden in a Python class then the
1178base class version can be called by using the method
1179{\tt base\_OnBeginDocument(startPage, endPage)}. }
1180
1181
1182\membersection{wxPrintout::OnEndDocument}\label{wxprintoutonenddocument}
1183
1184\func{void}{OnEndDocument}{\void}
1185
1186Called by the framework at the end of document printing. OnEndDocument
1187is called once for every copy printed.
1188
1189The base wxPrintout::OnEndDocument {\it must} be called
1190from within the overridden function, since it calls wxDC::EndDoc.
1191
1192
1193\membersection{wxPrintout::OnBeginPrinting}\label{wxprintoutonbeginprinting}
1194
1195\func{void}{OnBeginPrinting}{\void}
1196
1197Called by the framework at the start of printing. OnBeginPrinting is called once for every
1198print job (regardless of how many copies are being printed).
1199
1200
1201\membersection{wxPrintout::OnEndPrinting}\label{wxprintoutonendprinting}
1202
1203\func{void}{OnEndPrinting}{\void}
1204
1205Called by the framework at the end of printing. OnEndPrinting
1206is called once for every print job (regardless of how many copies are being printed).
1207
1208
1209\membersection{wxPrintout::OnPreparePrinting}\label{wxprintoutonprepareprinting}
1210
1211\func{void}{OnPreparePrinting}{\void}
1212
1213Called once by the framework before any other demands are made of the
1214wxPrintout object. This gives the object an opportunity to calculate the
1215number of pages in the document, for example.
1216
1217
1218\membersection{wxPrintout::OnPrintPage}\label{wxprintoutonprintpage}
1219
1220\func{bool}{OnPrintPage}{\param{int}{ pageNum}}
1221
1222Called by the framework when a page should be printed. Returning false cancels
1223the print job. The application can use wxPrintout::GetDC to obtain a device
1224context to draw on.
1225
1226\section{\class{wxPrintPreview}}\label{wxprintpreview}
1227
1228Objects of this class manage the print preview process. The object is passed
1229a wxPrintout object, and the wxPrintPreview object itself is passed to
1230a wxPreviewFrame object. Previewing is started by initializing and showing
1231the preview frame. Unlike wxPrinter::Print, flow of control returns to the application
1232immediately after the frame is shown.
1233
1234\wxheading{Derived from}
1235
1236\helpref{wxObject}{wxobject}
1237
1238\wxheading{Include files}
1239
1240<wx/print.h>
1241
1242\wxheading{See also}
1243
1244\overview{Printing framework overview}{printingoverview},
1245\helpref{wxPrinterDC}{wxprinterdc},
1246\helpref{wxPrintDialog}{wxprintdialog},
1247\helpref{wxPrintout}{wxprintout},
1248\helpref{wxPrinter}{wxprinter},
1249\helpref{wxPreviewCanvas}{wxpreviewcanvas},
1250\helpref{wxPreviewControlBar}{wxpreviewcontrolbar},
1251\helpref{wxPreviewFrame}{wxpreviewframe}.
1252
1253\latexignore{\rtfignore{\wxheading{Members}}}
1254
1255
1256\membersection{wxPrintPreview::wxPrintPreview}\label{wxprintpreviewctor}
1257
1258\func{}{wxPrintPreview}{\param{wxPrintout* }{printout}, \param{wxPrintout* }{printoutForPrinting},
1259\param{wxPrintData* }{data=NULL}}
1260
1261Constructor. Pass a printout object, an optional printout object to be
1262used for actual printing, and the address of an optional
1263block of printer data, which will be copied to the print preview object's
1264print data.
1265
1266If {\it printoutForPrinting} is non-NULL, a {\bf Print...} button will be placed on the
1267preview frame so that the user can print directly from the preview interface.
1268
1269Do not explicitly delete the printout objects once this destructor has been
1270called, since they will be deleted in the wxPrintPreview constructor.
1271The same does not apply to the {\it data} argument.
1272
1273Test the Ok member to check whether the wxPrintPreview object was created correctly.
1274Ok could return false if there was a problem initializing the printer device context
1275(current printer not set, for example).
1276
1277
1278\membersection{wxPrintPreview::\destruct{wxPrintPreview}}\label{wxprintpreviewdtor}
1279
1280\func{}{\destruct{wxPrinter}}{\void}
1281
1282Destructor. Deletes both print preview objects, so do not destroy these objects
1283in your application.
1284
1285
1286\membersection{wxPrintPreview::GetCanvas}\label{wxprintpreviewgetcanvas}
1287
1288\func{wxPreviewCanvas* }{GetCanvas}{\void}
1289
1290Gets the preview window used for displaying the print preview image.
1291
1292
1293\membersection{wxPrintPreview::GetCurrentPage}\label{wxprintpreviewgetcurrentpage}
1294
1295\func{int}{GetCurrentPage}{\void}
1296
1297Gets the page currently being previewed.
1298
1299
1300\membersection{wxPrintPreview::GetFrame}\label{wxprintpreviewgetframe}
1301
1302\func{wxFrame *}{GetFrame}{\void}
1303
1304Gets the frame used for displaying the print preview canvas
1305and control bar.
1306
1307
1308\membersection{wxPrintPreview::GetMaxPage}\label{wxprintpreviewgetmaxpage}
1309
1310\func{int}{GetMaxPage}{\void}
1311
1312Returns the maximum page number.
1313
1314
1315\membersection{wxPrintPreview::GetMinPage}\label{wxprintpreviewgetminpage}
1316
1317\func{int}{GetMinPage}{\void}
1318
1319Returns the minimum page number.
1320
1321
1322\membersection{wxPrintPreview::GetPrintout}\label{wxprintpreviewgetprintout}
1323
1324\func{wxPrintout *}{GetPrintout}{\void}
1325
1326Gets the preview printout object associated with the wxPrintPreview object.
1327
1328
1329\membersection{wxPrintPreview::GetPrintoutForPrinting}\label{wxprintpreviewgetprintoutforprinting}
1330
1331\func{wxPrintout *}{GetPrintoutForPrinting}{\void}
1332
1333Gets the printout object to be used for printing from within the preview interface,
1334or NULL if none exists.
1335
1336
1337\membersection{wxPrintPreview::IsOk}\label{wxprintpreviewisok}
1338
1339\func{bool}{Ok}{\void}
1340
1341Returns true if the wxPrintPreview is valid, false otherwise. It could return false if there was a
1342problem initializing the printer device context (current printer not set, for example).
1343
1344
1345\membersection{wxPrintPreview::PaintPage}\label{wxprintpreviewpaintpage}
1346
1347\func{bool}{PaintPage}{\param{wxPreviewCanvas *}{canvas}, \param{wxDC& }{dc}}
1348
1349This refreshes the preview window with the preview image.
1350It must be called from the preview window's OnPaint member.
1351
1352The implementation simply blits the preview bitmap onto
1353the canvas, creating a new preview bitmap if none exists.
1354
1355
1356\membersection{wxPrintPreview::Print}\label{wxprintpreviewprint}
1357
1358\func{bool}{Print}{\param{bool }{prompt}}
1359
1360Invokes the print process using the second wxPrintout object
1361supplied in the wxPrintPreview constructor.
1362Will normally be called by the {\bf Print...} panel item on the
1363preview frame's control bar.
1364
1365Returns false in case of error -- call
1366\helpref{wxPrinter::GetLastError}{wxprintergetlasterror} to get detailed
1367information about the kind of the error.
1368
1369
1370\membersection{wxPrintPreview::RenderPage}\label{wxprintpreviewrenderpage}
1371
1372\func{bool}{RenderPage}{\param{int }{pageNum}}
1373
1374Renders a page into a wxMemoryDC. Used internally by wxPrintPreview.
1375
1376
1377\membersection{wxPrintPreview::SetCanvas}\label{wxprintpreviewsetcanvas}
1378
1379\func{void}{SetCanvas}{\param{wxPreviewCanvas* }{window}}
1380
1381Sets the window to be used for displaying the print preview image.
1382
1383
1384\membersection{wxPrintPreview::SetCurrentPage}\label{wxprintpreviewsetcurrentpage}
1385
1386\func{void}{SetCurrentPage}{\param{int}{ pageNum}}
1387
1388Sets the current page to be previewed.
1389
1390
1391\membersection{wxPrintPreview::SetFrame}\label{wxprintpreviewsetframe}
1392
1393\func{void}{SetFrame}{\param{wxFrame *}{frame}}
1394
1395Sets the frame to be used for displaying the print preview canvas
1396and control bar.
1397
1398
1399\membersection{wxPrintPreview::SetPrintout}\label{wxprintpreviewsetprintout}
1400
1401\func{void}{SetPrintout}{\param{wxPrintout *}{printout}}
1402
1403Associates a printout object with the wxPrintPreview object.
1404
1405
1406\membersection{wxPrintPreview::SetZoom}\label{wxprintpreviewsetzoom}
1407
1408\func{void}{SetZoom}{\param{int}{ percent}}
1409
1410Sets the percentage preview zoom, and refreshes the preview canvas
1411accordingly.
1412