Beispiel #1
0
        private void btnPrint_Click(object sender, EventArgs e)
        {
            if (lstFiles.CheckedItems.Count == 0)
            {
                return;
            }
            // frmPrinterList frm = new frmPrinterList();
            //DialogResult drs = frm.ShowDialog();
            //if (drs != DialogResult.OK)
            //   return;
            // string printername = frm.GetSelected;
            string strDefault = PrinterOperate.GetDefaultPrinterName();

            //if (string.Compare(strDefault, printername, true) != 0)
            // {
            //     PrinterOperate.SetPrinter(printername);
            //  }
            try
            {
                //btnPrint.Enabled = false;
                btnCancel.Enabled = false;
                //lstFiles.Enabled = false;
                //chkAll.Enabled = false;
                IntPtr hMenu = GetSystemMenu(this.Handle, 0);
                EnableMenuItem(hMenu, SC_CLOSE, MF_DISABLED | MF_GRAYED);

                List <string> selectID = new List <string>();
                for (int i = 0; i < lstFiles.Items.Count; i++)
                {
                    if (lstFiles.GetItemChecked(i))
                    {
                        selectID.Add(Nodes[i].Tag.ToString());
                    }
                }

                TargetMothod(selectID);

                //if (string.Compare(strDefault, printername, true) != 0)
                // {
                //     PrinterOperate.SetPrinter(strDefault);
                // }
                btnCancel.Enabled = true;
                hMenu             = GetSystemMenu(this.Handle, 0);
                EnableMenuItem(hMenu, SC_CLOSE, MF_ENABLED);

                // TXMessageBoxExtensions.Info("打印任务已经全部输送到打印机,现在可以关闭窗口了,请耐心等待打印机的处理。");
            }
            catch (Exception ex)
            {
                btnPrint.Enabled  = true;
                btnCancel.Enabled = true;
                // if (string.Compare(strDefault, printername, true) != 0)
                // {
                //     PrinterOperate.SetPrinter(strDefault);
                // }
            }
        }
Beispiel #2
0
        private void btnPrint_Click(object sender, EventArgs e)
        {
            try
            {
                if (lstFiles.CheckedItems.Count == 0)
                {
                    return;
                }
                DataTable dt = ((DataView)lstFiles.DataSource).ToTable();
                for (int j = lstFiles.Items.Count - 1; j >= 0; j--)
                {
                    if (!lstFiles.GetItemChecked(j))
                    {
                        dt.Rows[j].Delete();
                    }
                }
                if (!CheckFileExist(dt))
                {
                    return;
                }
                if (dt.Rows.Count == 0)
                {
                    TXMessageBoxExtensions.Info("没有要打印的文件!");
                    return;
                }
                string PrintMode = "2";
                if (PrintMode.Equals("2") && tn != null)
                {
                    string[] printFileList = new string[dt.Rows.Count];
                    string   tempFolder    =
                        System.IO.Path.Combine(System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "erm_print");
                    if (!System.IO.Directory.Exists(tempFolder))
                    {
                        MyCommon.DeleteAndCreateEmptyDirectory(tempFolder, true);
                    }
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        /*
                         * * 拷贝到临时目录进行打印,因为隐藏章打印会删除掉,影响系统查看
                         * * */
                        string tempFile = System.IO.Path.Combine(tempFolder, dt.Rows[i]["title"].ToString() + ".pdf");
                        System.IO.File.Copy(dt.Rows[i]["filed"].ToString(), tempFile, true);
                        printFileList[i] = tempFile;
                    }

                    using (ConvertCell2PDF cl_print = new ConvertCell2PDF())
                    {
                        MyCommon.DeleteAndCreateEmptyDirectory(Application.StartupPath + @"\Reports\printPdf_temp", true);
                        cl_print.MergePDF(printFileList, Application.StartupPath + @"\Reports\printPdf_temp\printFile.pdf");
                        frmReport frmReports = new frmReport("printFile.pdf");
                        frmReports.ShowDialog();
                        //cl_print.BathPrintPDF(printFileList);
                    }
                    //switch (tn.ImageIndex)
                    //{
                    //    case 0://所有
                    //        string[] printFileList = new string[dt.Rows.Count];
                    //        for (int i = 0; i < dt.Rows.Count; i++)
                    //        {
                    //            printFileList[i] = dt.Rows[i]["filed"].ToString();
                    //        }
                    //        break;
                    //    case 1://案卷
                    //        //OperatorFile(dt, printername, ref hMenu, strDefault, dtNew, tn, StartPageNo);
                    //        break;
                    //    case 2://文件
                    //        //hMenu = OperatorTem(dt, printername, hMenu, strDefault, dtNew, StartPageNo);
                    //        break;
                    //    default:
                    //        break;
                    //}
                }
                else
                {
                    frmPrinterList frm = new frmPrinterList();
                    DialogResult   drs = frm.ShowDialog();
                    if (drs != DialogResult.OK)
                    {
                        return;
                    }
                    string printername = frm.GetSelected;
                    btnPrint.Enabled  = false;
                    btnCancel.Enabled = false;
                    lstFiles.Enabled  = false;
                    chkAll.Enabled    = false;
                    IntPtr hMenu = GetSystemMenu(this.Handle, 0);
                    EnableMenuItem(hMenu, SC_CLOSE, MF_DISABLED | MF_GRAYED);
                    string strDefault = "";
                    if (setDefaultPrinter)
                    {
                        strDefault = PrinterOperate.GetDefaultPrinterName();
                        if (string.Compare(strDefault, printername, true) != 0)
                        {
                            PrinterOperate.SetPrinter(printername);
                        }
                    }

                    hMenu = PrintFile(dt, printername, hMenu, strDefault);
                    if (setDefaultPrinter)//设回来
                    {
                        if (string.Compare(strDefault, printername, true) != 0)
                        {
                            PrinterOperate.SetPrinter(strDefault);
                        }
                    }
                    btnCancel.Enabled = true;
                    hMenu             = GetSystemMenu(this.Handle, 0);
                    EnableMenuItem(hMenu, SC_CLOSE, MF_ENABLED);
                    if (TXMessageBoxExtensions.Question("打印任务已经全部输送到打印机,现在可以关闭窗口了,请耐心等待打印机的处理。\n 是否继续打印?") != DialogResult.OK)
                    {
                        this.Close();
                    }
                    else
                    {
                        btnPrint.Enabled  = true;
                        btnCancel.Enabled = true;
                        lstFiles.Enabled  = true;
                        chkAll.Enabled    = true;
                    }
                }
                btnPrint.Enabled  = true;
                btnCancel.Enabled = true;
                lstFiles.Enabled  = true;
                chkAll.Enabled    = true;
            }
            catch (Exception ex)
            {
                btnPrint.Enabled  = true;
                btnCancel.Enabled = true;
            }
        }