![]() |
Characteristics of the Print Preview |
The Preview Area |
The Print Preview window appears as a finished designed form with a toolbar, a preview area, and two scroll bars. The preview area shows a sample of what a printed sheet would look like. If the dialog box is not "aware" of what would be printed, it displays the "Document does not contain any pages" string. This means that, in order to display something, you must create and design it. To make this possible, the PrintPreviewDialog class is equipped with a property named Document. The PrintPreviewDialog.Document property is of type PrintDocument. Therefore, in order to design a sample sheet, you should have created and configured a PrintDocument object. Here is an example: |
using System; using System.Drawing; using System.Windows.Forms; using System.Drawing.Printing; public class Exercise : Form { Button btnPrintPreview; PrintPreviewDialog dlgPrintPreview; PrintDocument docPrint; public Exercise() { InitializeComponent(); } void InitializeComponent() { btnPrintPreview = new Button(); btnPrintPreview.Location = new Point(12, 12); btnPrintPreview.Text = "&Print Preview..."; btnPrintPreview.Width = 100; btnPrintPreview.Click += new EventHandler(PreviewDocumentClick); Controls.Add(btnPrintPreview); dlgPrintPreview = new PrintPreviewDialog(); docPrint = new PrintDocument(); dlgPrintPreview.Document = docPrint; } void PreviewDocumentClick(object sender, EventArgs e) { dlgPrintPreview.ShowDialog(); } } public class Program { static int Main() { System.Windows.Forms.Application.Run(new Exercise()); return 0; } } This would produce: As you can see, simply assigning a PrintDocument object to a print preview form only creates a blank sheet. In order to show a preview, you must design it. To make this possible, the PrintDocument class To assist you with actually designing what you want to display in the preview area, the PrintDocument class fires an event named PrintPage. This event is of type PrintPageEventArgs. The PrintPageEventArgs class is equipped with a property named Graphics, which is of type Graphics. You can then use your knowledge of the Graphics class to create or design the preview. Here is an example: using System; using System.Drawing; using System.Windows.Forms; using System.Drawing.Printing; public class Exercise : Form { Button btnPrintPreview; PrintPreviewDialog dlgPrintPreview; PrintDocument docPrint; public Exercise() { InitializeComponent(); } void InitializeComponent() { btnPrintPreview = new Button(); btnPrintPreview.Location = new Point(12, 12); btnPrintPreview.Text = "&Print Preview..."; btnPrintPreview.Width = 100; btnPrintPreview.Click += new EventHandler(PreviewDocumentClick); Controls.Add(btnPrintPreview); dlgPrintPreview = new PrintPreviewDialog(); docPrint = new PrintDocument(); docPrint.PrintPage += new PrintPageEventHandler(docPrintPage); dlgPrintPreview.Document = docPrint; } void PreviewDocumentClick(object sender, EventArgs e) { dlgPrintPreview.ShowDialog(); } void docPrintPage(object sender, PrintPageEventArgs e) { Image imgPerson = Image.FromFile(@"E:\Programs\persons1.gif"); e.Graphics.DrawImage(imgPerson, 10, 10); } } On our computer, this produced:
To print the contents of the preview area, the user
can click the Print button
By default, when the print preview window appears to the user, it assumes some default dimensions that may make it small. Because it is derived from the Form class, you can maximize it if you want. Here is an example: void PreviewDocumentClick(object sender, EventArgs e) { dlgPrintPreview.WindowState = FormWindowState.Maximized; dlgPrintPreview.ShowDialog(); } If the print preview is not maximized, the content of the preview area may appear (too) small for the user, especially if it is made of text. To enlarge it, the user has two alternatives. If the user maximizes the window, the preview area would also be enlarged and the content would be easier to see. As an alternative, the user can click the arrow of the Zoom button. This would display a list of the zoom rates: The user can then click one of the values.
So far, we were assuming that the user was printing a one-page document. With some files, the document may span more than one page. By default, when the print preview comes up, the preview are would display only one page. The user has the choice of displaying two or more pages at a time, even to specify some arrangement of these pages. To support this, the toolbar of the print preview is equipped with various buttons labeled One Page, Two Pages, Three Pages, Four Pages, and Six Pages. After using the print preview, the user can close it. |
|
||
Previous | Copyright © 2007-2013, FunctionX | Home |
|