公司要做一个打印发票的小程序在网上找了半天都没找出法子看到一些例子程序,感觉都不详细
比如printDocument_PrintPage(object sender, PrintPageEventArgs e)
FileMenuItem_PrintView_Click(object sender, EventArgs e)
FileMenuItem_Print_Click(object sender, EventArgs e)
等到这些事件都是怎么调用的啊?
在页面上面都用的什么控件?
怎么才能控制打印机按我们的要求打印才好呢?

解决方案 »

  1.   

    点击按钮调用printdocument
    http://topic.csdn.net/u/20090811/16/429f6dc6-7517-48b9-9e6a-8aaf0c6e2d52.html
      

  2.   

    可以到微软下载C#的sample包。
      

  3.   

    http://download.csdn.net/source/2866397
    看一下这个DEMO,做好模版就可以实现不同样式的打印
      

  4.   

    http://download.csdn.net/source/100056
      

  5.   

     1、调用打印水晶报表
    this.Cursor = Cursors.WaitCursor;
                                CsReport.CS012CLS report = new LMS.CsReport.CS012CLS();
                                report.Viewer = false;
                                report.ZoomLevel = 100;
                                report.FormWindowState = FormWindowState.Maximized;
                                report.SetDataSource(print_dt);
                                //report.Publish();
                                report.PublishSaleBills(billsnum);2、//打印小票
     public void PublishSaleBills(int num)
            {
                try
                {
                    for (int i = 0; i < _ParameterName.Count; i++)
                    {
                        _oRpt.SetParameterValue(_ParameterName[i].ToString(), _ParameterValue[i]);
                    }
                }
                catch
                {
                }            _oRpt.RecordSelectionFormula = _RecordSelectionFormula;            if (_Viewer)
                {
                    ComCrystalReport.ReportToViewer(_oRpt, _wstate, _zoomlevel);
                }
                else
                {
                    _copies = num;
                    ComCrystalReport.PrintToPrinter(_oRpt, _copies, _prtDialog);
                }
            }
    3、
     #region PrintToPrinter 水晶报表输出到打印机
            /// <summary>
            /// 水晶报表输出到打印机
            /// </summary>
            /// <param name="rpt">水晶报表</param>
            /// <param name="nCopies">部数</param>
            /// <param name="prtDialog">打印对话框表示</param>
            public static void PrintToPrinter(object rpt, int nCopies, bool prtDialog)
            {
                ReportClass oRpt = (ReportClass)rpt;            //水晶报表数据库连接            ApplyLogOnInfo(oRpt);            if (prtDialog)
                {
                    //对话框表示                PrintDialog dialog = new PrintDialog();
                    System.Drawing.Printing.PrinterSettings prt = new System.Drawing.Printing.PrinterSettings();                dialog.PrinterSettings = prt;
                    dialog.AllowSomePages = true;
                    dialog.PrinterSettings.FromPage = 1;
                    //dialog.PrinterSettings.Copies = 2;
                    dialog.PrinterSettings.ToPage = 9999;
                    DialogResult dRet = dialog.ShowDialog();                if (dRet == DialogResult.OK)
                    {
                        //OK开始印刷
                        oRpt.PrintOptions.PrinterName = dialog.PrinterSettings.PrinterName;
                        oRpt.PrintToPrinter(dialog.PrinterSettings.Copies, true, dialog.PrinterSettings.FromPage, dialog.PrinterSettings.ToPage);
                    }                return;
                }
              
                //没有指定打印机的时候,用默认打印机输出
                oRpt.PrintToPrinter(nCopies, true, 0, 0);        }
            #endregion
      

  6.   

    打印控件printdocument然后自己画上去就OK了.
      

  7.   

    msdn demo中有相应的demo,直接画上去,打印就行了。
      

  8.   

    推荐一款报表工具:http://download.csdn.net/source/3005942