]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/print.tex
added wxTB_RIGHT style for right-aligned toolbars (slightly modified patch 1567469)
[wxWidgets.git] / docs / latex / wx / print.tex
CommitLineData
a660d684
KB
1\section{\class{wxPrintData}}\label{wxprintdata}
2
7bcb11d3
JS
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.
a660d684
KB
8
9\wxheading{Derived from}
10
11\helpref{wxObject}{wxobject}
12
954b8ae6
JS
13\wxheading{Include files}
14
15<wx/cmndata.h>
16
a660d684
KB
17\wxheading{See also}
18
f415cab9 19\helpref{Printing framework overview}{printingoverview},
fa482912
JS
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},
7bcb11d3
JS
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}
a660d684
KB
59
60\latexignore{\rtfignore{\wxheading{Members}}}
61
60090256 62
3e79fa75 63\membersection{wxPrintData::wxPrintData}\label{wxprintdatactor}
a660d684
KB
64
65\func{}{wxPrintData}{\void}
66
7bcb11d3
JS
67Default constructor.
68
69\func{}{wxPrintData}{\param{const wxPrintData\&}{ data}}
70
71Copy constructor.
a660d684 72
60090256 73
3e79fa75 74\membersection{wxPrintData::\destruct{wxPrintData}}\label{wxprintdatadtor}
a660d684
KB
75
76\func{}{\destruct{wxPrintData}}{\void}
77
78Destructor.
79
60090256 80
a660d684
KB
81\membersection{wxPrintData::GetCollate}\label{wxprintdatagetcollate}
82
7bcb11d3 83\constfunc{bool}{GetCollate}{\void}
a660d684 84
cc81d32f 85Returns true if collation is on.
a660d684 86
60090256
VZ
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
7bcb11d3 98\membersection{wxPrintData::GetColour}\label{wxprintdatagetcolour}
a660d684 99
7bcb11d3 100\constfunc{bool}{GetColour}{\void}
a660d684 101
cc81d32f 102Returns true if colour printing is on.
a660d684 103
60090256 104
7bcb11d3 105\membersection{wxPrintData::GetDuplex}\label{wxprintdatagetduplex}
a660d684 106
7bcb11d3 107\constfunc{wxDuplexMode}{GetDuplex}{\void}
a660d684 108
7bcb11d3 109Returns the duplex mode. One of wxDUPLEX\_SIMPLEX, wxDUPLEX\_HORIZONTAL, wxDUPLEX\_VERTICAL.
a660d684 110
60090256 111
a660d684
KB
112\membersection{wxPrintData::GetNoCopies}\label{wxprintdatagetnocopies}
113
7bcb11d3 114\constfunc{int}{GetNoCopies}{\void}
a660d684
KB
115
116Returns the number of copies requested by the user.
117
60090256 118
a660d684
KB
119\membersection{wxPrintData::GetOrientation}\label{wxprintdatagetorientation}
120
7bcb11d3 121\constfunc{int}{GetOrientation}{\void}
a660d684
KB
122
123Gets the orientation. This can be wxLANDSCAPE or wxPORTRAIT.
124
60090256 125
7bcb11d3 126\membersection{wxPrintData::GetPaperId}\label{wxprintdatagetpaperid}
a660d684 127
7bcb11d3 128\constfunc{wxPaperSize}{GetPaperId}{\void}
a660d684 129
7bcb11d3 130Returns the paper size id. For more information, see \helpref{wxPrintData::SetPaperId}{wxprintdatasetpaperid}.
a660d684 131
60090256 132
7bcb11d3 133\membersection{wxPrintData::GetPrinterName}\label{wxprintdatagetprintername}
a660d684 134
7bcb11d3 135\constfunc{const wxString\&}{GetPrinterName}{\void}
a660d684 136
7bcb11d3
JS
137Returns the printer name. If the printer name is the empty string, it indicates that the default
138printer should be used.
a660d684 139
60090256 140
7bcb11d3 141\membersection{wxPrintData::GetQuality}\label{wxprintdatagetquality}
a660d684 142
6394c596 143\constfunc{wxPrintQuality}{GetQuality}{\void}
a660d684 144
7bcb11d3
JS
145Returns the current print quality. This can be a positive integer, denoting the number of dots per inch, or
146one of the following identifiers:
a660d684 147
7bcb11d3 148\begin{verbatim}
a66abda9
GT
149wxPRINT_QUALITY_HIGH
150wxPRINT_QUALITY_MEDIUM
151wxPRINT_QUALITY_LOW
152wxPRINT_QUALITY_DRAFT
7bcb11d3 153\end{verbatim}
a660d684 154
7bcb11d3
JS
155On input you should pass one of these identifiers, but on return you may get back a positive integer
156indicating the current resolution setting.
a660d684 157
60090256 158
b7cacb43 159\membersection{wxPrintData::IsOk}\label{wxprintdataisok}
58cf0491 160
b7cacb43 161\constfunc{bool}{IsOk}{\void}
58cf0491 162
cc81d32f
VS
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.
58cf0491 166
60090256
VZ
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
7bcb11d3 200\membersection{wxPrintData::SetCollate}\label{wxprintdatasetcollate}
a660d684 201
7bcb11d3 202\func{void}{SetCollate}{\param{bool }{flag}}
a660d684 203
7bcb11d3 204Sets collation to on or off.
a660d684 205
60090256 206
7bcb11d3 207\membersection{wxPrintData::SetColour}\label{wxprintdatasetcolour}
a660d684 208
7bcb11d3 209\func{void}{SetColour}{\param{bool }{flag}}
a660d684 210
7bcb11d3 211Sets colour printing on or off.
a660d684 212
60090256 213
7bcb11d3
JS
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.
a660d684 219
60090256 220
a660d684
KB
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
60090256 227
7bcb11d3 228\membersection{wxPrintData::SetOrientation}\label{wxprintdatasetorientation}
a660d684 229
7bcb11d3 230\func{void}{SetOrientation}{\param{int }{orientation}}
a660d684 231
7bcb11d3 232Sets the orientation. This can be wxLANDSCAPE or wxPORTRAIT.
a660d684 233
60090256 234
7bcb11d3
JS
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
60090256 318
7bcb11d3
JS
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
60090256 326
7bcb11d3
JS
327\membersection{wxPrintData::SetQuality}\label{wxprintdatasetquality}
328
6394c596 329\func{void}{SetQuality}{\param{wxPrintQuality}{ quality}}
7bcb11d3
JS
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}
a66abda9
GT
335wxPRINT_QUALITY_HIGH
336wxPRINT_QUALITY_MEDIUM
337wxPRINT_QUALITY_LOW
338wxPRINT_QUALITY_DRAFT
7bcb11d3
JS
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
60090256 344
7bcb11d3
JS
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.
a660d684
KB
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
954b8ae6
JS
369\wxheading{Include files}
370
371<wx/printdlg.h>
372
a660d684
KB
373\wxheading{See also}
374
f415cab9 375\helpref{Printing framework overview}{printingoverview},
a660d684
KB
376\helpref{wxPrintDialog Overview}{wxprintdialogoverview}
377
378\latexignore{\rtfignore{\wxheading{Members}}}
379
60090256 380
3e79fa75 381\membersection{wxPrintDialog::wxPrintDialog}\label{wxprintdialogctor}
a660d684 382
7bcb11d3 383\func{}{wxPrintDialog}{\param{wxWindow* }{parent}, \param{wxPrintDialogData* }{data = NULL}}
a660d684
KB
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
7bcb11d3 390\helpref{wxPrintDialogData}{wxprintdialogdata}
a660d684 391
60090256 392
3e79fa75 393\membersection{wxPrintDialog::\destruct{wxPrintDialog}}\label{wxprintdialogdtor}
a660d684
KB
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
60090256 400
7bcb11d3 401\membersection{wxPrintDialog::GetPrintDialogData}\label{wxprintdialoggetprintdialogdata}
a660d684 402
7bcb11d3 403\func{wxPrintDialogData\&}{GetPrintDialogData}{\void}
a660d684 404
7bcb11d3 405Returns the \helpref{print dialog data}{wxprintdialogdata} associated with the print dialog.
a660d684 406
60090256 407
a660d684
KB
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
60090256 417
a660d684
KB
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
7bcb11d3
JS
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
f415cab9
JS
441\helpref{Printing framework overview}{printingoverview},
442\helpref{wxPrintDialog}{wxprintdialog},
443\helpref{wxPrintDialog Overview}{wxprintdialogoverview}
7bcb11d3
JS
444
445\latexignore{\rtfignore{\wxheading{Members}}}
446
60090256 447
3e79fa75 448\membersection{wxPrintDialogData::wxPrintDialogData}\label{wxprintdialogdatactor}
7bcb11d3
JS
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
60090256 462
3e79fa75 463\membersection{wxPrintDialogData::\destruct{wxPrintDialogData}}\label{wxprintdialogdatadtor}
7bcb11d3
JS
464
465\func{}{\destruct{wxPrintDialogData}}{\void}
466
467Destructor.
468
60090256 469
7bcb11d3
JS
470\membersection{wxPrintDialogData::EnableHelp}\label{wxprintdialogdataenablehelp}
471
472\func{void}{EnableHelp}{\param{bool }{flag}}
473
474Enables or disables the `Help' button.
475
60090256 476
7bcb11d3
JS
477\membersection{wxPrintDialogData::EnablePageNumbers}\label{wxprintdialogdataenablepagenumbers}
478
479\func{void}{EnablePageNumbers}{\param{bool }{flag}}
480
481Enables or disables the `Page numbers' controls.
482
60090256 483
7bcb11d3
JS
484\membersection{wxPrintDialogData::EnablePrintToFile}\label{wxprintdialogdataenableprinttofile}
485
486\func{void}{EnablePrintToFile}{\param{bool }{flag}}
487
488Enables or disables the `Print to file' checkbox.
489
60090256 490
7bcb11d3
JS
491\membersection{wxPrintDialogData::EnableSelection}\label{wxprintdialogdataenableselection}
492
493\func{void}{EnableSelection}{\param{bool }{flag}}
494
495Enables or disables the `Selection' radio button.
496
60090256 497
7bcb11d3
JS
498\membersection{wxPrintDialogData::GetAllPages}\label{wxprintdialogdatagetallpages}
499
500\constfunc{bool}{GetAllPages}{\void}
501
cc81d32f 502Returns true if the user requested that all pages be printed.
7bcb11d3 503
60090256 504
7bcb11d3
JS
505\membersection{wxPrintDialogData::GetCollate}\label{wxprintdialogdatagetcollate}
506
507\constfunc{bool}{GetCollate}{\void}
508
cc81d32f 509Returns true if the user requested that the document(s) be collated.
7bcb11d3 510
60090256 511
7bcb11d3
JS
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
60090256 518
7bcb11d3
JS
519\membersection{wxPrintDialogData::GetMaxPage}\label{wxprintdialogdatagetmaxpage}
520
521\constfunc{int}{GetMaxPage}{\void}
522
523Returns the {\it maximum} page number.
524
60090256 525
7bcb11d3
JS
526\membersection{wxPrintDialogData::GetMinPage}\label{wxprintdialogdatagetminpage}
527
528\constfunc{int}{GetMinPage}{\void}
529
530Returns the {\it minimum} page number.
531
60090256 532
7bcb11d3
JS
533\membersection{wxPrintDialogData::GetNoCopies}\label{wxprintdialogdatagetnocopies}
534
535\constfunc{int}{GetNoCopies}{\void}
536
537Returns the number of copies requested by the user.
538
60090256 539
7bcb11d3
JS
540\membersection{wxPrintDialogData::GetPrintData}\label{wxprintdialogdatagetprintdata}
541
542\func{wxPrintData\&}{GetPrintData}{\void}
543
544Returns a reference to the internal wxPrintData object.
545
60090256 546
7bcb11d3
JS
547\membersection{wxPrintDialogData::GetPrintToFile}\label{wxprintdialogdatagetprinttofile}
548
549\constfunc{bool}{GetPrintToFile}{\void}
550
cc81d32f 551Returns true if the user has selected printing to a file.
7bcb11d3 552
60090256 553
5360828d
JS
554\membersection{wxPrintDialogData::GetSelection}\label{wxprintdialogdatagetselection}
555
556\constfunc{bool}{GetSelection}{\void}
557
cc81d32f 558Returns true if the user requested that the selection be printed (where 'selection' is
5360828d
JS
559a concept specific to the application).
560
60090256 561
7bcb11d3
JS
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
60090256 568
b7cacb43 569\membersection{wxPrintDialogData::IsOk}\label{wxprintdialogdataisok}
58cf0491 570
b7cacb43 571\constfunc{bool}{IsOk}{\void}
58cf0491 572
cc81d32f
VS
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.
58cf0491 576
60090256 577
7bcb11d3
JS
578\membersection{wxPrintDialogData::SetCollate}\label{wxprintdialogdatasetcollate}
579
580\func{void}{SetCollate}{\param{bool }{flag}}
581
cc81d32f 582Sets the 'Collate' checkbox to true or false.
7bcb11d3 583
60090256 584
7bcb11d3
JS
585\membersection{wxPrintDialogData::SetFromPage}\label{wxprintdialogdatasetfrompage}
586
587\func{void}{SetFromPage}{\param{int }{page}}
588
589Sets the {\it from} page number.
590
60090256 591
7bcb11d3
JS
592\membersection{wxPrintDialogData::SetMaxPage}\label{wxprintdialogdatasetmaxpage}
593
594\func{void}{SetMaxPage}{\param{int }{page}}
595
596Sets the {\it maximum} page number.
597
60090256 598
7bcb11d3
JS
599\membersection{wxPrintDialogData::SetMinPage}\label{wxprintdialogdatasetminpage}
600
601\func{void}{SetMinPage}{\param{int }{page}}
602
603Sets the {\it minimum} page number.
604
60090256 605
7bcb11d3
JS
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
60090256 612
7bcb11d3
JS
613\membersection{wxPrintDialogData::SetPrintData}\label{wxprintdialogdatasetprintdata}
614
615\func{void}{SetPrintData}{\param{const wxPrintData\& }{printData}}
616
617Sets the internal wxPrintData.
618
60090256 619
7bcb11d3
JS
620\membersection{wxPrintDialogData::SetPrintToFile}\label{wxprintdialogdatasetprinttofile}
621
622\func{void}{SetPrintToFile}{\param{bool }{flag}}
623
cc81d32f 624Sets the 'Print to file' checkbox to true or false.
7bcb11d3 625
60090256 626
5360828d
JS
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
60090256 634
7bcb11d3
JS
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
cc81d32f 640(pass false) or Print Setup dialog (pass true).
7bcb11d3 641
a947a1e5 642This function has been deprecated since version 2.5.4.
60090256 643
7bcb11d3
JS
644\membersection{wxPrintDialogData::SetToPage}\label{wxprintdialogdatasettopage}
645
646\func{void}{SetToPage}{\param{int }{page}}
647
648Sets the {\it to} page number.
649
60090256 650
7bcb11d3
JS
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
a660d684
KB
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
954b8ae6
JS
673\wxheading{Include files}
674
675<wx/print.h>
676
a660d684
KB
677\wxheading{See also}
678
f415cab9
JS
679\helpref{Printing framework overview}{printingoverview},
680\helpref{wxPrinterDC}{wxprinterdc},
681\helpref{wxPrintDialog}{wxprintdialog},
682\helpref{wxPrintout}{wxprintout},
683\helpref{wxPrintPreview}{wxprintpreview}.
a660d684
KB
684
685\latexignore{\rtfignore{\wxheading{Members}}}
686
60090256 687
3e79fa75 688\membersection{wxPrinter::wxPrinter}\label{wxprinterctor}
a660d684 689
7bcb11d3 690\func{}{wxPrinter}{\param{wxPrintDialogData* }{data = NULL}}
a660d684
KB
691
692Constructor. Pass an optional pointer to a block of print
7bcb11d3 693dialog data, which will be copied to the printer object's local data.
a660d684
KB
694
695\wxheading{See also}
696
2233e5b8 697\helpref{wxPrintDialogData}{wxprintdialogdata},
a660d684
KB
698\helpref{wxPrintData}{wxprintdata}
699
60090256 700
60090256 701
a660d684
KB
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
f6bcfd97 708
9a75ba66
RN
709\membersection{wxPrinter::GetAbort}\label{wxprintergetabort}
710
711\func{bool}{GetAbort}{\void}
712
713Returns true if the user has aborted the print job.
714
60090256 715
f6bcfd97
BP
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
60090256 735
7bcb11d3 736\membersection{wxPrinter::GetPrintDialogData}\label{wxprintergetprintdialogdata}
a660d684 737
7bcb11d3 738\func{wxPrintDialogData\&}{GetPrintDialogData}{\void}
a660d684
KB
739
740Returns the \helpref{print data}{wxprintdata} associated with the printer object.
741
60090256 742
a660d684
KB
743\membersection{wxPrinter::Print}\label{wxprinterprint}
744
cc81d32f 745\func{bool}{Print}{\param{wxWindow *}{parent}, \param{wxPrintout *}{printout}, \param{bool }{prompt=true}}
a660d684
KB
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
cc81d32f 750Print could return false if there was a problem initializing the printer device context
f6bcfd97
BP
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.
a660d684 754
60090256 755
a660d684
KB
756\membersection{wxPrinter::PrintDialog}\label{wxprinterprintdialog}
757
7bcb11d3
JS
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
f6bcfd97
BP
762(otherwise NULL is returned -- call
763\helpref{wxPrinter::GetLastError}{wxprintergetlasterror} to get detailed
764information about the kind of the error).
a660d684 765
7bcb11d3 766The application must delete this device context to avoid a memory leak.
a660d684 767
60090256 768
a660d684
KB
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
60090256 775
a660d684
KB
776\membersection{wxPrinter::Setup}\label{wxprintersetup}
777
7bcb11d3 778\func{bool}{Setup}{\param{wxWindow *}{parent}}
a660d684
KB
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
f415cab9
JS
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.
a660d684
KB
789
790\wxheading{Derived from}
791
792\helpref{wxDC}{wxdc}\\
793\helpref{wxObject}{wxdc}
794
954b8ae6
JS
795\wxheading{Include files}
796
797<wx/dcprint.h>
798
a660d684
KB
799\wxheading{See also}
800
f415cab9
JS
801\helpref{Printing framework overview}{printingoverview},
802\helpref{wxDC}{wxdc}
a660d684
KB
803
804\latexignore{\rtfignore{\wxheading{Members}}}
805
60090256 806
3e79fa75 807\membersection{wxPrinterDC::wxPrinterDC}\label{wxprinterdcctor}
a660d684 808
7bcb11d3
JS
809\func{}{wxPrinterDC}{\param{const wxPrintData\& }{printData}}
810
f415cab9 811Constructor. Pass a \helpref{wxPrintData}{wxprintdata} object with information
7bcb11d3 812necessary for setting up a suitable printer device context. This
05db64b2
RN
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.
7bcb11d3 817
a660d684 818\func{}{wxPrinterDC}{\param{const wxString\& }{driver}, \param{const wxString\& }{device}, \param{const wxString\& }{output},
cc81d32f 819 \param{const bool }{interactive = true}, \param{int }{orientation = wxPORTRAIT}}
a660d684
KB
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
2edb0bde 825constructor was successful in creating a usable device context.
a660d684 826
7bcb11d3
JS
827This constructor is deprecated and retained only for backward compatibility.
828
f415cab9
JS
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
a660d684
KB
842\section{\class{wxPrintout}}\label{wxprintout}
843
f415cab9
JS
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
a660d684
KB
866
867\wxheading{Derived from}
868
869\helpref{wxObject}{wxobject}
870
954b8ae6
JS
871\wxheading{Include files}
872
873<wx/print.h>
874
a660d684
KB
875\wxheading{See also}
876
f415cab9
JS
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}
a660d684
KB
883
884\latexignore{\rtfignore{\wxheading{Members}}}
885
60090256 886
3e79fa75 887\membersection{wxPrintout::wxPrintout}\label{wxprintoutctor}
a660d684
KB
888
889\func{}{wxPrintout}{\param{const wxString\& }{title = "Printout"}}
890
2edb0bde 891Constructor. Pass an optional title argument - the current filename would be a good idea. This will appear in the printing list
fc799548 892(at least in MSW)
a660d684 893
60090256 894
3e79fa75 895\membersection{wxPrintout::\destruct{wxPrintout}}\label{wxprintoutdtor}
a660d684
KB
896
897\func{}{\destruct{wxPrintout}}{\void}
898
899Destructor.
900
60090256 901
a660d684
KB
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
f415cab9 907printing or previewing). This will be a wxPrinterDC if printing under Windows or Mac,
a660d684
KB
908a wxPostScriptDC if printing on other platforms, and a wxMemoryDC if previewing.
909
60090256 910
a660d684
KB
911\membersection{wxPrintout::GetPageInfo}\label{wxprintoutgetpageinfo}
912
913\func{void}{GetPageInfo}{\param{int *}{minPage}, \param{int *}{maxPage}, \param{int *}{pageFrom}, \param{int *}{pageTo}}
914
f415cab9
JS
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.
a660d684
KB
919
920If {\it minPage} is zero, the page number controls in the print dialog will be disabled.
921
2233e5b8
RD
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
0a67eeac 927\perlnote{When this method is overridden in a derived class,
d2b354f9 928it must not take any parameters, and returns a 4-element list.
0a67eeac
MB
929}
930
60090256 931
a660d684
KB
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
2233e5b8
RD
938\pythonnote{This method returns the output-only parameters as a tuple.}
939
0a67eeac
MB
940\perlnote{In wxPerl this method takes no arguments and returns a
9412-element list {\tt ( w, h )}}
942
60090256 943
a660d684
KB
944\membersection{wxPrintout::GetPageSizePixels}\label{wxprintoutgetpagesizepixels}
945
946\func{void}{GetPageSizePixels}{\param{int *}{w}, \param{int *}{h}}
947
f415cab9
JS
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.
a660d684 955
2233e5b8
RD
956\pythonnote{This method returns the output-only parameters as a tuple.}
957
0a67eeac
MB
958\perlnote{In wxPerl this method takes no arguments and returns a
9592-element list {\tt ( w, h )}}
960
60090256 961
f415cab9
JS
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
a660d684
KB
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.
f415cab9
JS
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.
a660d684 993
2233e5b8
RD
994\pythonnote{This method returns the output-only parameters as a tuple.}
995
0a67eeac
MB
996\perlnote{In wxPerl this method takes no arguments and returns a
9972-element list {\tt ( w, h )}}
998
60090256 999
a660d684
KB
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.
f415cab9
JS
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.
a660d684 1008
60090256 1009
fc799548
JS
1010\membersection{wxPrintout::GetTitle}\label{wxprintoutgettitle}
1011
1012\func{wxString}{GetTitle}{\void}
1013
1014Returns the title of the printout
1015
2233e5b8
RD
1016\pythonnote{This method returns the output-only parameters as a tuple.}
1017
0a67eeac
MB
1018\perlnote{In wxPerl this method takes no arguments and returns a
10192-element list {\tt ( w, h )}}
1020
60090256 1021
a660d684
KB
1022\membersection{wxPrintout::HasPage}\label{wxprintouthaspage}
1023
1024\func{bool}{HasPage}{\param{int}{ pageNum}}
1025
cc81d32f
VS
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,
a660d684
KB
1028HasPage behaves as if the document has only one page.
1029
60090256 1030
a660d684
KB
1031\membersection{wxPrintout::IsPreview}\label{wxprintoutispreview}
1032
1033\func{bool}{IsPreview}{\void}
1034
cc81d32f 1035Returns true if the printout is currently being used for previewing.
a660d684 1036
60090256 1037
f415cab9
JS
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
a660d684
KB
1166\membersection{wxPrintout::OnBeginDocument}\label{wxprintoutonbegindocument}
1167
1168\func{bool}{OnBeginDocument}{\param{int}{ startPage}, \param{int}{ endPage}}
1169
cc81d32f 1170Called by the framework at the start of document printing. Return false from
a660d684
KB
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
f6bcfd97 1175checked) from within the overridden function, since it calls wxDC::StartDoc.
a660d684 1176
f6bcfd97 1177\pythonnote{If this method is overridden in a Python class then the
2233e5b8 1178base class version can be called by using the method
6aa358ae 1179{\tt base\_OnBeginDocument(startPage, endPage)}. }
2233e5b8 1180
60090256 1181
a660d684
KB
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
f6bcfd97 1190from within the overridden function, since it calls wxDC::EndDoc.
a660d684 1191
60090256 1192
a660d684
KB
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
60090256 1200
a660d684
KB
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
60090256 1208
a660d684
KB
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
60090256 1217
a660d684
KB
1218\membersection{wxPrintout::OnPrintPage}\label{wxprintoutonprintpage}
1219
1220\func{bool}{OnPrintPage}{\param{int}{ pageNum}}
1221
cc81d32f 1222Called by the framework when a page should be printed. Returning false cancels
a660d684
KB
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
a660d684
KB
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
954b8ae6
JS
1238\wxheading{Include files}
1239
1240<wx/print.h>
1241
a660d684
KB
1242\wxheading{See also}
1243
f415cab9
JS
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},
a660d684
KB
1251\helpref{wxPreviewFrame}{wxpreviewframe}.
1252
1253\latexignore{\rtfignore{\wxheading{Members}}}
1254
60090256 1255
3e79fa75 1256\membersection{wxPrintPreview::wxPrintPreview}\label{wxprintpreviewctor}
a660d684
KB
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.
cc81d32f 1274Ok could return false if there was a problem initializing the printer device context
a660d684
KB
1275(current printer not set, for example).
1276
60090256 1277
3e79fa75 1278\membersection{wxPrintPreview::\destruct{wxPrintPreview}}\label{wxprintpreviewdtor}
a660d684
KB
1279
1280\func{}{\destruct{wxPrinter}}{\void}
1281
1282Destructor. Deletes both print preview objects, so do not destroy these objects
1283in your application.
1284
60090256 1285
a660d684
KB
1286\membersection{wxPrintPreview::GetCanvas}\label{wxprintpreviewgetcanvas}
1287
d2b354f9 1288\func{wxPreviewCanvas* }{GetCanvas}{\void}
a660d684
KB
1289
1290Gets the preview window used for displaying the print preview image.
1291
60090256 1292
a660d684
KB
1293\membersection{wxPrintPreview::GetCurrentPage}\label{wxprintpreviewgetcurrentpage}
1294
1295\func{int}{GetCurrentPage}{\void}
1296
1297Gets the page currently being previewed.
1298
60090256 1299
a660d684
KB
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
60090256 1307
a660d684
KB
1308\membersection{wxPrintPreview::GetMaxPage}\label{wxprintpreviewgetmaxpage}
1309
1310\func{int}{GetMaxPage}{\void}
1311
1312Returns the maximum page number.
1313
60090256 1314
a660d684
KB
1315\membersection{wxPrintPreview::GetMinPage}\label{wxprintpreviewgetminpage}
1316
1317\func{int}{GetMinPage}{\void}
1318
1319Returns the minimum page number.
1320
60090256 1321
a660d684
KB
1322\membersection{wxPrintPreview::GetPrintout}\label{wxprintpreviewgetprintout}
1323
1324\func{wxPrintout *}{GetPrintout}{\void}
1325
1326Gets the preview printout object associated with the wxPrintPreview object.
1327
60090256 1328
a660d684
KB
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
60090256 1336
b7cacb43 1337\membersection{wxPrintPreview::IsOk}\label{wxprintpreviewisok}
a660d684
KB
1338
1339\func{bool}{Ok}{\void}
1340
cc81d32f 1341Returns true if the wxPrintPreview is valid, false otherwise. It could return false if there was a
a660d684
KB
1342problem initializing the printer device context (current printer not set, for example).
1343
60090256 1344
a660d684
KB
1345\membersection{wxPrintPreview::PaintPage}\label{wxprintpreviewpaintpage}
1346
f6e9a818 1347\func{bool}{PaintPage}{\param{wxPreviewCanvas *}{canvas}, \param{wxDC& }{dc}}
a660d684
KB
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
60090256 1355
a660d684
KB
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
cc81d32f 1365Returns false in case of error -- call
f6bcfd97
BP
1366\helpref{wxPrinter::GetLastError}{wxprintergetlasterror} to get detailed
1367information about the kind of the error.
1368
60090256 1369
a660d684
KB
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
60090256 1376
a660d684
KB
1377\membersection{wxPrintPreview::SetCanvas}\label{wxprintpreviewsetcanvas}
1378
9a75ba66 1379\func{void}{SetCanvas}{\param{wxPreviewCanvas* }{window}}
a660d684
KB
1380
1381Sets the window to be used for displaying the print preview image.
1382
60090256 1383
a660d684
KB
1384\membersection{wxPrintPreview::SetCurrentPage}\label{wxprintpreviewsetcurrentpage}
1385
1386\func{void}{SetCurrentPage}{\param{int}{ pageNum}}
1387
1388Sets the current page to be previewed.
1389
60090256 1390
a660d684
KB
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
60090256 1398
a660d684
KB
1399\membersection{wxPrintPreview::SetPrintout}\label{wxprintpreviewsetprintout}
1400
1401\func{void}{SetPrintout}{\param{wxPrintout *}{printout}}
1402
1403Associates a printout object with the wxPrintPreview object.
1404
60090256 1405
a660d684
KB
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