?? printerpagesetting.cs
字號:
using System;
using System.Drawing;
using System.Drawing.Printing;
namespace GoldPrinter
{
/// <summary>
/// 打印方式
/// </summary>
public enum PrintModeFlag
{
/// <summary>
/// Windows窗口打印方式
/// </summary>
Win
,
/// <summary>
/// Web窗口打印方式
/// </summary>
Web
}
/// <summary>
/// 封裝頁面設置、打印機設置、打印預覽,適合于Window和Asp.Net,Web方式下請在配置文件中增加鍵PrintMode及值Web。
///
/// 程序提供:周方勇;Email:flygoldfish@sina.com。
/// 請 關 注:WebMIS.Net快速開發工具,不寫一行程序開發B/S架構下MIS、OA、CRM、人事管理、檔案管理等數據庫網頁系統。簡單、實用、穩定、可靠。
/// 下 載:
/// 上海奧聯:WWW.AlinkSoft.COM
/// 用友華表:WWW.CellSoft.CC
///★★★★★您可以免費使用此程序,但是請您保留此說明,以維護知識產權★★★★★
/// </summary>
public class PrinterPageSetting
{
//申明一個封裝頁面設置、打印機設置、打印預覽的接口
private IPrinterPageSetting _printerPageSetting;
//打印方式
private PrintModeFlag _printModeFlag;
public PrintModeFlag PrintMode
{
get
{
return this._printModeFlag;
}
set
{
this._printModeFlag = value;
//運用了抽象模式,創建接口對象的新實例,使其指象真正的實現其接口的對象
if (this._printModeFlag == PrintModeFlag.Win)
{
_printerPageSetting = new WinPrinterPageSetting();
}
else if(this._printModeFlag == PrintModeFlag.Web)
{
//注意,Web方式下的程序請密切關注WWW.AlinkSoft.COM
_printerPageSetting = new WebPrinterPageSetting();
}
}
}
/// <summary>
/// 獲取或設置打印文檔
/// </summary>
public PrintDocument PrintDocument
{
get
{
return _printerPageSetting.PrintDocument;
}
set
{
_printerPageSetting.PrintDocument = value;
}
}
/// <summary>
/// 一定要實例化此類后在調用打印/預覽初始此變量,使之關聯一個方法,目的是讓具體的打印由實例化者來操作
/// 如PrinterPageSetting1.PrintPage += new PrintPageDelegate(this.PrintPageEventHandler);
/// </summary>
public PrintPageDelegate PrintPage
{
set
{
_printerPageSetting.PrintPage = value;
}
get
{
return _printerPageSetting.PrintPage;
}
}
#region 構造函數
/// <summary>
/// 封裝頁面設置、打印機設置、打印預覽,適合于Window和Asp.Net,Web方式下請在配置文件中增加鍵PrintMode及值Web,也可以實例化后設置PrintMode屬性為PrintModeFlag.Web。
/// </summary>
public PrinterPageSetting():this(null)
{
}
/// <summary>
/// 封裝頁面設置、打印機設置、打印預覽,適合于Window和Asp.Net,Web方式下請在配置文件中增加鍵PrintMode及值Web,也可以實例化后設置PrintMode屬性為PrintModeFlag.Web。
/// </summary>
/// <param name="printDocument"></param>
public PrinterPageSetting(PrintDocument printDocument)
{
string strPrintMode = "";
//配置文件中鍵PrintMode
strPrintMode = System.Configuration.ConfigurationSettings.AppSettings["PrintMode"];
if (strPrintMode == null)
{
//默認為Win方式
strPrintMode = "Win";
}
//配置文件中鍵PrintMode的值Win/Web
if (strPrintMode.ToUpper() == "WIN")
{
this.PrintMode = PrintModeFlag.Win;
}
else
{
this.PrintMode = PrintModeFlag.Web;
}
/* //配置文件中添加鍵值的寫法
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="PrintMode" value="Web"/>
</appSettings>
</configuration>
*/
_printerPageSetting.PrintDocument = printDocument;
}
#endregion
/// <summary>
/// 顯示頁面設置對話框,并返回PageSettings
/// </summary>
/// <returns></returns>
public PageSettings ShowPageSetupDialog()
{
return _printerPageSetting.ShowPageSetupDialog();
}
/// <summary>
/// 顯示打印機設置對話框,并返回PrinterSettings
/// </summary>
/// <returns></returns>
public PrinterSettings ShowPrintSetupDialog()
{
return _printerPageSetting.ShowPrintSetupDialog();
}
/// <summary>
/// 顯示打印預覽對話框
/// </summary>
public void ShowPrintPreviewDialog()
{
_printerPageSetting.ShowPrintPreviewDialog();
}
}//End Class
}//End NameSpace
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -