Exemplo n.º 1
0
        public void printDocument(DataTable dt)
        {
            if (cboxPrinter.SelectedItem == null)
            {
                MessageBox.Show("请选择打印机。");
                return;
            }
            DataTable printnowdata = dt;

            if (printnowdata.Rows.Count > 0)//存在记录
            {
                //林修改于2016-01-28 打印条码 结合实际调整
                for (int i = 0; i < printnowdata.Rows.Count; i++)
                {
                    try
                    {
                        /*
                         * PrintDocument pd = new PrintDocument();
                         * pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
                         * header = "";
                         * footer = printnowdata.Rows[i]["xm"].ToString().Trim() + "  " + printnowdata.Rows[i]["xb"].ToString().Trim() + "  " + printnowdata.Rows[i]["nl"].ToString().Trim();
                         * barcode = printnowdata.Rows[i]["tjbh"].ToString().Trim();
                         * header = printnowdata.Rows[i]["tjbh"].ToString().Trim();
                         * for (int j = 0; j < numericUpDown3.Value; j++)
                         * {
                         *  pd.DocumentName = "条码打印";
                         *  pd.PrinterSettings.PrinterName = cboxPrinter.SelectedItem.ToString();
                         *  pd.Print();
                         * }
                         * */

                        header  = "";
                        barcode = printnowdata.Rows[i]["tjbh"].ToString().Trim();
                        header  = printnowdata.Rows[i]["tjbh"].ToString().Trim();
                        footer  = printnowdata.Rows[i]["xm"].ToString().Trim() + "" + printnowdata.Rows[i]["xb"].ToString().Trim() + "" + printnowdata.Rows[i]["nl"].ToString().Trim();

                        PrintDocument printDocument1 = new PrintDocument();
                        printDocument1.PrintPage += printDocument1_PrintPage;
                        printDocument1.PrinterSettings.PrinterName = cboxPrinter.SelectedItem.ToString();
                        printDocument1.PrintController             = new System.Drawing.Printing.StandardPrintController();
                        printDocument1.OriginAtMargins             = true;
                        System.Drawing.Printing.Margins margins = new System.Drawing.Printing.Margins(0, 0, 0, 0);
                        printDocument1.DefaultPageSettings.Margins = margins;
                        System.Drawing.Printing.PaperSize paperSize = new System.Drawing.Printing.PaperSize();
                        paperSize.Height = 160;
                        paperSize.Width  = 750;

                        frmLabel = new Form_label(header, footer, barcode, (int)numericUpDown5.Value);
                        printDocument1.Print();


                        //更改为已打印状态
                        LisBiz lisprint = new LisBiz();
                        lisprint.UpdatePrintLabel(header);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("打印异常:" + ex.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        continue;
                    }
                }
            }
            else
            {
                MessageBox.Show("请勾选需要打印的体检人员。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }