使用PrintPreviewDialog類
如下圖所示的打印預覽窗體,使用PrintPreviewDialog類可以輕鬆實現。
這裏所介紹的例子,是在「執行打印」中所介紹的方法追加的基礎上,點擊按鈕(Button1)時,表示打印預覽窗體。
[C#]
private void button1_Click(object sender, System.EventArgs e)
{
//PrintDocument對象作成
System.Drawing.Printing.PrintDocument pd = new System.Drawing.Printing.PrintDocument();
//PrintPage事件處理器追加
pd.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(pd_PrintPage);
//PrintPreviewDialog對象作成
PrintPreviewDialog ppd = new PrintPreviewDialog();
//設定預覽用的
PrintDocument ppd.Document = pd;
//表示打印預覽用窗體
ppd.ShowDialog();
}
private void pd_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
//讀取圖片
Image img = Image.FromFile("c:/test.bmp");
//描繪圖片
e.Graphics.DrawImage(img, e.MarginBounds);
//沒有時通知
e.HasMorePages = false;
//資源釋放
img.Dispose();
}
窗體的樣式是在安全檢查中追加PrintPreviewDialog組件所形成的。關於PrintPreviewDialog組件的使用方法,請參考「在 Windows 應用程序中顯示打印預覽」。
使用PrintPreviewControl類
接下來介紹使用PrintPreviewControl控件表示打印預覽窗體的方法。在不想常規窗體時,可以使用這個方法。
下面的例子也一樣,是在「執行打印」中所介紹的方法的基礎上追加的,當點擊按鈕(Button1)時,打印預覽窗體在PrintPreviewControl控件(PrintPreviewControl1)中表示。(Button1和PrintPreviewControl1在窗體中需要追加。)
[C#]
private void button1_Click(object sender, System.EventArgs e)
{
//PrintDocument對象作成
System.Drawing.Printing.PrintDocument pd = new System.Drawing.Printing.PrintDocument();
//PrintPage事件處理器追加
pd.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(pd_PrintPage);
//設定預覽用的
PrintDocument PrintPreviewControl1.Document = pd;
}
private void pd_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
//讀取圖片
Image img = Image.FromFile("c:/test.bmp");
//描繪圖片
e.Graphics.DrawImage(img, e.MarginBounds);
//下一頁沒有時通知
e.HasMorePages = false;
//資源釋放
img.Dispose();
}