金质打印通 示例 zt

《金质打印通》03年开始第一版,然后到V2.5源码版,好多年了,从06年之后基本没动。

 

做了一个订单自定义打印,于是做出如下效果来。

 

达到如下效果有两种方式:

1、用模板打印方式,支持XML

2、用程序方式

3、模板+程序方式

 

为了全大家理解打印的组成部分,特用图标作了说明。

现把实现方式,分享给大家!

 

金质打印通单据打印

 

附代码,需要的朋友可以参考。

注意:

如上效果,除了标题头前的那个图标,是在新增事件OnDrawPageSetup实现外,所有功能,在6年前共享的《金质打印通》之AnyReport下,完全一样。

 

[csharp] view plain copy
  1. //调用金质打印通预览打印  
  2.  private void CallGoldPrinter(bool viewOrPrint)  
  3.  {  
  4.   
  5.      //打印表格,实质,就是打印二维数据  
[csharp] view plain copy
    1.     string[,] gridText = new string[this.DetailGrids[0].Rows.Count, 8];  
    2.   
    3.    for (int i = 0; i < this.DetailGrids[0].Rows.Count; i++)  
    4.    {  
    5.        if (i < this.DetailGrids[0].Rows.Count - 1)  
    6.        {  
    7.            gridText[i, 0] = (i + 1).ToString();  
    8.        }  
    9.        else  
    10.        {  
    11.            gridText[i, 0] = "合计";                  
    12.        }  
    13.        gridText[i, 1] = this.DetailGrids[0].Rows[i].Cells["品牌"].Text.ToString();  
    14.        gridText[i, 2] = this.DetailGrids[0].Rows[i].Cells["国标型号"].Text.ToString();  
    15.        gridText[i, 3] = this.DetailGrids[0].Rows[i].Cells["数量"].Text.ToString();  
    16.        gridText[i, 4] = this.DetailGrids[0].Rows[i].Cells["含税单价"].Text.ToString();  
    17.        gridText[i, 5] = this.DetailGrids[0].Rows[i].Cells["含税金额"].Text.ToString();  
    18.        gridText[i, 6] = this.DetailGrids[0].Rows[i].Cells["到货周期"].Text.ToString();  
    19.        gridText[i, 7] = this.DetailGrids[0].Rows[i].Cells["小注"].Text.ToString();  
    20.    }  
    21.   
    22.     //清单、单据打印类  
    23.     GoldPrinter.GoldPrinterList gpl = new GoldPrinter.GoldPrinterList();  
    24.     //事件,方便自定义打印  
    25.     gpl.OnDrawPageSetup += new EventHandler<GoldPrinter.DrawPageSetupEventArgs>(gpl_OnDrawPageSetup);  
    26.   
    27.     gpl.PageSetupManager.ShowPrinterArea = false;  //指定画可参考有效区域  
    28.     gpl.PageSetupManager.PageMargins = new System.Drawing.Printing.Margins(50, 50, 50, 50);  //页边距  
    29.   
    30.     gpl.DocumentName = "采购订单打印";  
    31.     gpl.PageBreakSuperCols = true;                          //是否因列超宽分页  
    32.     gpl.DefaultRowHeight = 25;                              //明细行高  
    33.     gpl.PageSize = 10;                                     //每页指定打多少行  
    34.     gpl.AllowPadEmptyLines = true;                         //不够PageSize,刚空行填充  
    35.  
    36.     #region 主子标题...  
    37.   
    38.     gpl.PageSetupManager.PrimaryTitle.Text = "北京元六鸿远电子技术有限公司";  
    39.     gpl.PageSetupManager.PrimaryTitle.Font = new Font("华文行楷", 22, FontStyle.Bold);  
    40.     gpl.PageSetupManager.PrimaryTitle.BorderFormat.BordersEdge = GoldPrinter.Drawing.BorderEdgeFlags.None;  
    41.     //gpl.PageSetupManager.PrimaryTitle.LineCount = 0;   //主标题下划线,默认2条  
    42.   
    43.     gpl.PageSetupManager.SubTitle.Text = "采 购 订 单";  
    44.     gpl.PageSetupManager.SubTitle.Font = new Font("华文中宋", 16, FontStyle.Bold);  
    45.     gpl.PageSetupManager.SubTitle.BorderFormat.BordersEdge = GoldPrinter.Drawing.BorderEdgeFlags.None;  
    46.  
    47.     #endregion 主子标题...  
    48.   
    49.   
    50.     //多层表头  
    51.     gpl.TableTitleRowHeight = 35;  
    52.  
    53.     #region 表格标题(多层表头)...  
    54.     gpl.TableTitleText = new string[1, 8];  
    55.   
    56.     gpl.TableTitleText[0, 0] = "序号";  
    57.     gpl.TableTitleText[0, 1] = "品牌";  
    58.     gpl.TableTitleText[0, 2] = "型号规格";  
    59.     gpl.TableTitleText[0, 3] = "数量(支)";  
    60.     gpl.TableTitleText[0, 4] = "含税单价(元)";  
    61.     gpl.TableTitleText[0, 5] = "含税金额(元)";  
    62.     gpl.TableTitleText[0, 6] = "到货周期";  
    63.     gpl.TableTitleText[0, 7] = "备注";  
    64.  
    65.     #endregion 表格标题(多层表头)...  
    66.   
    67.   
    68.     //表格主体明细  
    69.     gpl.TableText = gridText;  
    70.     gpl.TableFormat.TextFormat.Font = new Font("华文中宋", 11);  
    71.     gpl.TableInfo.ColsAlignment = new GoldPrinter.Drawing.HAlignFlag[] { GoldPrinter.Drawing.HAlignFlag.Right, GoldPrinter.Drawing.HAlignFlag.Left, GoldPrinter.Drawing.HAlignFlag.Left, GoldPrinter.Drawing.HAlignFlag.Right, GoldPrinter.Drawing.HAlignFlag.Right, GoldPrinter.Drawing.HAlignFlag.Right, GoldPrinter.Drawing.HAlignFlag.Left, GoldPrinter.Drawing.HAlignFlag.Left };  
    72.     //gpl.TableInfo.ColsAlignment = GoldPrinter.Drawing.HAlignFlag[]  
    73.     //{GoldPrinter.Drawing.HAlignFlag.Left,GoldPrinter.Drawing.HAlignFlag.Left,GoldPrinter.Drawing.HAlignFlag.Right,GoldPrinter.Drawing.HAlignFlag.Left,GoldPrinter.Drawing.HAlignFlag.Right,GoldPrinter.Drawing.HAlignFlag.Left,GoldPrinter.Drawing.HAlignFlag.Right};  
    74.   
    75.     //装订线  
    76.     gpl.PageSetupManager.Gutter.Text = "元     六     订     单     装     订     线";  
    77.   
    78.     //页眉  
    79.     #region 页眉...  
    80.   
    81.     gpl.PageSetupManager.HeaderMargin = 20;  
    82.     gpl.PageHeader.Align = GoldPrinter.Drawing.HAlignFlag.Right;  
    83.     gpl.PageHeader.LineVisible = false;  
    84.     gpl.PageHeader.Font = new Font("华文中宋", 11);  
    85.     gpl.PageHeader.Text = "文件号:YL-JL-JH-010-2011";  
    86.  
    87.     #endregion 页眉...  
    88.   
    89.     //页脚  
    90.     #region 页脚...  
    91.   
    92.     gpl.PageSetupManager.FooterMargin = 20;  
    93.     gpl.PageFooter.Align = GoldPrinter.Drawing.HAlignFlag.Center;  
    94.     gpl.PageHeader.LineVisible = false;  
    95.     gpl.PageFooter.Font = new Font("华文中宋", 11);  
    96.     gpl.PageFooter.Text = "第[@PageIndex]页/共[@PageCount]页";  
    97.  
    98.     #endregion 页脚...  
    99.   
    100.     GoldPrinter.TablePrinterBase header = new GoldPrinter.TablePrinterBase();  
    101.   
    102.     //表头个数不限,因此,无论是几行几列,是否规则,都可以打印  
    103.     #region 表头...  
    104.   
    105.     gpl.PageSetupManager.SubTitle.Font = new Font("华文中宋", 12);  
    106.   
    107.     header.TableText = new string[5, 4];  
    108.     header.TableFormat.DefaultRowHeight = 30;  
    109.     header.TableFormat.TextFormat.Font = new Font("华文中宋", 12);  
    110.   
    111.   
    112.     header.TableInfo.ColsWidth = new int[] { 100,250,100,250};  
    113.     header.TableFormat.GridLines = GoldPrinter.Drawing.GridLineFlag.None;  
    114.   
    115.     header.TableText[0, 0] = "订货日期:";  
    116.     header.TableText[1, 0] = "供方单位:";  
    117.     header.TableText[2, 0] = "供方联系人:";  
    118.     header.TableText[3, 0] = "供方电话:";  
    119.     header.TableText[4, 0] = "供方传真:";  
    120.   
    121.     header.TableText[0, 1] = "";  
    122.     header.TableText[1, 1] = "";  
    123.     header.TableText[2, 1] = "";  
    124.     header.TableText[3, 1] = "";  
    125.     header.TableText[4, 1] = "";  
    126.   
    127.     header.TableText[0, 2] = "订单号:";  
    128.     header.TableText[1, 2] = "需方单位:";  
    129.     header.TableText[2, 2] = "需方联系人:";  
    130.     header.TableText[3, 2] = "需方电话:";  
    131.     header.TableText[4, 2] = "需方传真:";  
    132.   
    133.     header.TableText[0, 3] = "";  
    134.     header.TableText[1, 3] = "";  
    135.     header.TableText[2, 3] = "";  
    136.     header.TableText[3, 3] = "";  
    137.     header.TableText[3, 3] = "";  
    138.  
    139.     #endregion 表头...  
    140.     gpl.AddTableHeader(header);  
    141.   
    142.     //页底签字  
    143.     GoldPrinter.TablePrinterBase footer = null;  
    144.   
    145.     //表底,个数不限  
    146.     gpl.ColsWidth = new int[] { 40, 70, 230, 70, 95, 95, 70, 40 };  //列宽  
    147.   
    148.     gpl.SpaceTableBodyFooter = 0;   //金额大写与明细表,合为一体  
    149.  
    150.     #region 表底(包括金额合计大写)...  
    151.   
    152.     //金额合计  
    153.     footer = new GoldPrinter.TablePrinterBase();  
    154.     footer.TableFormat.TextFormat.Font = new Font("华文中宋", 12, FontStyle.Bold);  
    155.     footer.TableText = new string[1, 2];  
    156.     footer.TableFormat.DefaultRowHeight = 30;  
    157.   
    158.     footer.TableInfo.ColsWidth = new int[] { 40+70+230+ 70, 95+95+70+40 };  //列宽  
    159.     footer.TableInfo.ColsAlignment = new GoldPrinter.Drawing.HAlignFlag[] { GoldPrinter.Drawing.HAlignFlag.Center, GoldPrinter.Drawing.HAlignFlag.Center };  
    160.   
    161.     footer.TableText[0, 0] = "金额大小";  
    162.   
    163.     if (this.DetailGrids[0].Rows.Count > 2 && this.DetailGrids[0].Rows[(this.DetailGrids[0].Rows.Count - 1)].Cells["含税金额"].Text != "")  
    164.     {  
    165.         footer.TableText[0, 1] = GoldPrinter.ChineseNum.GetUpperMoney(double.Parse(this.DetailGrids[0].Rows[(this.DetailGrids[0].Rows.Count - 1)].Cells["含税金额"].Text.ToString()));  
    166.     }  
    167.     else  
    168.     {  
    169.         footer.TableText[0, 1] = "";  
    170.     }  
    171.       
    172.     gpl.AddTableFooter(footer);  
    173.  
    174.     #region 页底签字...  
    175.     footer = new GoldPrinter.TablePrinterBase();  
    176.     footer.TableFormat.TextFormat.Font = new Font("华文中宋", 12, FontStyle.Bold);  
    177.     footer.TableText = new string[7, 2];  
    178.     footer.TableFormat.DefaultRowHeight = 30;  
    179.     footer.TableFormat.GridLines = GoldPrinter.Drawing.GridLineFlag.None;  
    180.     footer.IsAverageColsWidth = true;  
    181.     footer.TableText[0, 0] = "供方签字:";  
    182.     footer.TableText[1, 0] = "";  
    183.     footer.TableText[2, 0] = "";  
    184.     footer.TableText[3, 0] = "________________________";  
    185.     footer.TableText[4, 0] = "";  
    186.     footer.TableText[5, 0] = "";  
    187.     footer.TableText[6, 0] = "________________________";  
    188.   
    189.     footer.TableText[0, 1] = "需方签字:";  
    190.     footer.TableText[1, 1] = "";  
    191.     footer.TableText[2, 1] = "制单人:________________________";  
    192.     footer.TableText[3, 1] = "";  
    193.     footer.TableText[4, 1] = "审核人:________________________";  
    194.     footer.TableText[5, 1] = "";  
    195.     footer.TableText[6, 1] = "批准人:________________________";  
    196.     gpl.AddTableFooter(footer);  
    197.     #endregion 页底签字...  
    198.   
    199.     //页底 (备注)  
    200.     #region 页底备注...  
    201.     //GoldPrinter.TablePrinterBase = null;                   
    202.     footer = new GoldPrinter.TablePrinterBase();  
    203.     footer.TableFormat.TextFormat.Font = new Font("华文中宋", 12);  
    204.     footer.TableText = new string[10, 1];  
    205.     footer.TableFormat.DefaultRowHeight = 30;  
    206.     footer.TableFormat.GridLines = GoldPrinter.Drawing.GridLineFlag.None;  
    207.     footer.IsAverageColsWidth = true;        //只有一列,用平均宽,就是有效页宽了  
    208.     footer.TableText[0, 0] = "备注:";  
    209.     footer.TableText[1, 0] = "   1 合同签订地点及交货地点:需方所在地。";  
    210.     footer.TableText[2, 0] = "   2 运费负担:供方承担运费。";  
    211.     footer.TableText[3, 0] = "   3 产品包装:原厂包装。";  
    212.     footer.TableText[4, 0] = "   4 质量标准:产品质量必须符合相应品牌标准。";  
    213.     footer.TableText[5, 0] = "   5 付款方式:预付/货到付款。";  
    214.     footer.TableText[6, 0] = "   6 开具发票:以上单价含17%增值税,供方开具正规合法增值税发票。";  
    215.     footer.TableText[7, 0] = "   7 质量保证:如出现质量问题,由供方负责调换或退货,并承担相应的费用。";  
    216.     footer.TableText[8, 0] = "   8 违约责任:双方友好协商解决,协商未果依照中华人民共和国合同法执行。";  
    217.     footer.TableText[9, 0] = "   9 本合同一式两份,自签订之日起生效,传真件有效。";  
    218.     gpl.AddTableFooter(footer);  
    219.     #endregion 页底备注...  
    220.  
    221.     #endregion 表底...  
    222.   
    223.     if (viewOrPrint)  
    224.     {  
    225.         gpl.ShowPreview();  
    226.     }  
    227.     else  
    228.     {  
    229.         gpl.Print();  
    230.     }  
    231. }  
    232.   
    233. void gpl_OnDrawPageSetup(object sender, GoldPrinter.DrawPageSetupEventArgs e)  
    234. {  
    235.     System.Drawing.Image img = null;  
    236.     System.Drawing.Graphics g = e.Graphics;  
    237.   
    238.     img = System.Drawing.Image.FromFile("Images\\UserLogo.bmp");  
    239.   
    240.     g.DrawImage(img,125,50);  

转载于:https://www.cnblogs.com/zeroone/archive/2013/03/20/2971730.html

姓 名: 周方勇 网 名: 长江支流/咏方舟 Email: flygoldfish@sina.com.cn Blog: http://blog.csdn.net/flygoldfish 2004年04月18日 1、在网友的热心支持下免费提供空间和域名 www.webmis.com.cn 2004年04月07日 发布不带.dll的源码供交流 2005年01月24日 1、提供VB.NET及C#的使用示例工程 2、发布V2.2测试版 2005年01月22日 将打印示例程序按功能(简单打印、完整示例、Excel打印)分在不同的窗口 2005年01月14日 发布《MIS金质打印》 V2.1测试版 2004年01月13日 1、将MisPrinter类改为MisGoldPrinter,以促进品牌效应。 2、在MisGoldPrinter类中再增加一个带参构造函数,以便直接默认横向打印/预览 3、增加DocumentName属性,以便在打印/预览时在窗口标题栏中显示指定的名称 2004年01月07日 调整打印程序内部结构,为使发出去的后期源程序版本一致,待近期调整完结构之后公布源码! 这就是继V1.1之后没有发源代码的原因。 ____________________________________________________ 2004年7月 完成了整体的框架、涉及打印的几个对话框、核心打印程序及几个基本打印对象并由BillPrinter类将其组织起来,程序基本定型。 本程序为打印程序,单据、会计凭证、发票清单、报表、任意复杂表格、合并表格如工矿企业合同都可以由系统提供的几个默 认打印对象组合打印。 DataGrid、DataTable、MSHFlexGrid等二维形式全部可以打印。 部分对象如PrinterMargins、Sewing、GridLineFlag、GridMergeFlag等提供图例,以促进理解。 后期版本将提供XML描述、SQL数据源的打印,并用管理器管理任意多个网格、文本对象、图象等,用户可以随意定义。 2004年8月初 为一些类或程序写上注释,如下: /// 程序提供:周方勇;Email:flygoldfish@sina.com。 /// 请 关 注:WebMIS.Net快速开发工具,不写一行程序开发B/S架构下MIS、OA、CRM、人事管理、档案管理等数据库网页系统。简单、实用、稳定、可靠。 /// 下 载: /// 上海奥联:WWW.AlinkSoft.COM /// 用友华表:WWW.CellSoft.CC ///★★★★★您可以免费使用此程序,但是请您保留此说明,以维护知识产权★★★★★ 2004年08月07日 1、将框架作了部分调整,并且将打印基本对象的基类Printer作了调整。 由于打印对象的定位及打印区域受PrintDocument、Sewing影响,为了方便Printer的子类不必在每次实例化后设置这 两个对象,故将PrintDocument、Sewing放在一个类中作为全局静态变量,现删除这两个全局静态变量, 改在Printer 的构造函数中,为每个子类提供一个默认的PrintDocument、Sewing实例对象。 2、为GridBase扩充了几个属性与方法,由于字段太多,每次增加或修改字段后要去构造函数中去修改他们的初始化, 太麻烦了,所以将它们的初始化直接放在定义处,并把相应的属性及相关方法直接放在字段后,并用#region指令将 它们折叠起来,便于维护。 3、增加了ReDimArrString(string[,] arrStr,int rows,int cols),即重定义二维字符数组,因为网格的行列数可能要改 变,但不能因为它们改变了而丢失原有的数据,因此写此程序保留新定义的行列,但保留和原有行列数相交的部分数据。 4、应用设计模式原理重新组织IPrinterPageSetting、PrinterPageSetting、WinPrinterPageSetting、WebPrinterPageSetting。 WebPrinterPageSetting待进一步完善。 2004年08月08日 1、将以往程序优化 2、将DrawGrid类中DrawGridLine(...)、DrawGridText(...)、DrawGridBorder(...)参数最全的核心函数改为protected,提供public的 无参方法供实例化对象调用; 由于在指定的区域内可能绘制不完网格,因此上面的几个函数可能会将返回类型void改为一个描述绘制结果的对象; SetText(int row,int col,string text)、SetText(int row,int col)将在后期版本中提供.Row[index].Text的属性; TransGrid()、ResetTransGrid()是在设计时为了能做任意的缩放的变换提供的,待进一步完善。 3、对Printer类中的ReSetVariableVal()、GetPrinterMargins()进行修改,以适应对纸张进行调整特别是横向、竖向打印的支持。 2004年08月09日 1、解决分页问题,主要是有些对象每页都重复打印,使得条件复杂。 2004年08月10日 1、13:42将源程序传给资深程序员李峰; 2、计划增加每页小计。 2004年08月11日 1、为网格增加画对角线的功能,以满足中国人表格的特点; 2、将Graphics、PrintDocument、Sewing、RectangleF、Height、Draw()重新组织在IDraw里,并在 BillPrinter中增加private void OutObject(IDraw outer),使每个对象输出时调用此方法,提高代码重用率; 2004年08月14日 1、忘了,反正又把程序看了看,修修补补做了些调整。 2004年08月15日 1、将分页又重新简化了一下,主要是打印Body上用了数据行指针; 2004年08月16日 1、发布V1.0源码版,程序名称为MIS金质打印王。 2、在CSDN上发布贴子: .^^.开源:C#.NET开发的MIS打印程序,各种网格如DataGrid打印、DataTable、HtmlTable等二维形式全搞定,源码免费下载 http://community.csdn.net/Expert/topic/3278/3278050.xml?temp=.5012934 2004年08月17日 1、在CSDN上发布文章: 开源:.NET环境下有关打印页面设置、打印机设置、打印预览对话框的实现 http://blog.csdn.net/flygoldfish/archive/2004/08/17/77208.aspx 2、应广大网友来信要求,计划将PrinterPageSetting目录开源到演示程序,以后逐一以文章的形式全部开放。 2004年08月18日 1、中国共享软件网收录 MIS金质打印王 V1.0源码版 http://www.shareware.cn/pub/2319.html 2、将PrinterPageSetting目录即(页面设置、打印机设置、打印预览)源码加入演示程序。 3、在MisGoldPrinter中添加属性,DataSource,这样,仅需几句话就可以打印了,如: MisGoldPrinter webmis = new MisGoldPrinter(); //申明并实例化打印组件 webmis.Title = "WebMIS.Net快速开发工具\nWWW.AlinkSoft.COM"; //网格标题 webmis.DataSource = this.dataGrid1; //DataGrid作为数据源 webmis.Preview(); //打印预览 注意:将将MisGoldPrinter中的Draw(Graphics g)打印各个对象时加一下 printerobject != null的判断,如 if (mCurrentPageIndex == 1 || _caption.IsDrawAllPage)... 改为 if (_caption != null && (mCurrentPageIndex == 1 || _caption.IsDrawAllPage))... 否则可能会出错。 4、将3的应用加到了frmPrint.cs ,做一个简单的打印。 2004年08月19日 1、将PrinterPageSetting目录即(页面设置、打印机设置、打印预览)源码加入演示程序。 2、发布V1.1源码版,程序名称为MIS金质打印王。 2004年09月03日 1、由于在CSDN上发表文档".NET环境下有关打印页面设置、打印机设置、打印预览对话框的实现", 因此将PrinterPageSetting封装成一个.dll,分别用C#与VB.net写了使用示例工程程序 2、在IPrinterPageSetting.cs增加event PrintPageDelegate PrintPage,并将原PrintPage改为PrintPageValue /// C#调用: /// PrinterPageSetting1.PrintPageValue = new PrintPageDelegate(this.PrintPageEventHandler); ///或 PrinterPageSetting1.PrintPage += new PrintPageDelegate(this.PrintPageEventHandler); /// VB调用: /// Me.printerPageSetting.PrintPageValue = New GoldPrinter.PrintPageDelegate(AddressOf printDocument_PrintPage) 3、增加了DrawText类,用以打印文档(其实可以用一行一列的DrawGrid打印) 4、PrinterPageSetting的readme.txt如下: ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ 声明: 1、版权归周方勇所有,如需传播,请保留完整的内容及此声明,以维护知识产权! 2、您可以使用本程序中的任何部分作为学习或商业用途,但是需要保留相关程序的注释。 3、最新版本下载:http://www.alinksoft.com 4、免费源码 5、本人不承担任何责任。 周方勇;Email:flygoldfish@sina.com。 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ 本程序带C#与VB.net版本使用方式,用VS.net打开PrinterPageSetting.sln, 在您喜欢的语言项目上单击鼠标右键,在弹出的菜单中选择"设为启动项目",然后运行。 5、准备独立发布PrinterPageSetting 2004年09月04日 重大喜讯:收到中国共享软件注册中心2004年09月03日的邮件。部分内容如下: 软件名称:MISGoldPrinter免费C#.NET源码版(5块钱给softreg吧) 注册价格:5元/套 您的软件在本站的编号是: /535AC7A1-9985-4314-A52C-978BB9C0BB29/ 软件注册页绝对链接: http://www.softreg.com.cn/shareware_view.asp?id=/535AC7A1-9985-4314-A52C-978BB9C0BB29/ 快捷链接: http://www.softreg.com.cn/shareware.asp?id=17260 2004年10月...日 改变PrintDocument的DefaultPageSettings就会改变PrinterMargins。由于是打印基类,继承者博多,因此 每次实例化时都会计算PrinterMargins会影响效率,这就是前些版本速度慢的原因。改为手动调用CalculatePageInfo()或改变 PrintDocument后在调用处重新计算一个PrinterMargins保存起来,因此增加PrinterSingleton, 使系统只有同一个PrintDocument及PrinterMargins,这样速度大大改观。 开发Excel打印功能 2004年11月20日 开发Excel打印功能完成,能够生成Excel文件、Excel打印预览、Excel操作。 自定制模板打印,非常灵活。完成各种打印、套打、报表、图表分析。 2004年11月23日 发布MIS金质打印王 V2.0测试版。如需要源码,下载V1.1即可。 V2.0源码版在预计在12月上旬推出。 2004年11月27日 改正预览时显示正确,在预览窗口单击打印打印不出Body的错误。 其实只要在PrintPageEventHandler()中打印或预览重置当前页及当前行 this.mCurrentPageIndex = 1; this.mCurrentRowIndex = 0; 2004年12月...日 1、调整打印程序内部结构,公开部分程序基本没动,只作相应的错误更正及加几个属性。 2、PrinterBase不再包含装订线Sewing,打印对象的定位及打印区域只受PrintDocument的影响, 3、由于使用PrinterSingleton使系统只有同一个PrintDocument及PrinterMargins,因此在同一系统 两个地方使用时出现了打印一样的效果,如A处有header而B处没有,先打A再打B,结果B中也有header了, 于是在PrinterSingleton增加Reset()方法以使PrintDocument及PrinterMargins为null,在MisPrinter 构造函数中首先调用Reset()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值