zoukankan      html  css  js  c++  java
  • C#打印图片

    #region 打印
            private void btnPrint_Click(object sender, EventArgs e)
            {
                //打印预览
                //PrintPreviewDialog ppd = new PrintPreviewDialog();
                PrintDocument pd = new PrintDocument();
                //设置边距
                Margins margin = new Margins(20, 20, 20, 20);
                pd.DefaultPageSettings.Margins = margin;
                ////纸张设置默认
                //PaperSize pageSize = new PaperSize("First custom size", 800, 600);
                //pd.DefaultPageSettings.PaperSize = pageSize;
                //打印事件设置
                pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);
                //ppd.Document = pd;
                //ppd.ShowDialog();
                try
                {
                    pd.Print();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "打印出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    pd.PrintController.OnEndPrint(pd, new PrintEventArgs());
                }
            }
            //打印事件处理
            private void pd_PrintPage(object sender, PrintPageEventArgs e)
            {
                string date = lblDate.Text; //当前日期
                string flowId = lblFlowId.Text; //流水号
                string payDate = PayDate.Year.ToString() + "" + PayDate.Month.ToString() + ""; //应收年月
                string adminId = lblAdminId.Text; //操作员编号
                string baseExpense = lblBaseExpense.Text; //应交基本费用
                string fine = lblFine.Text; //罚款数目
                string upExpense = lblUpExpense.Text; //上月上余
                string actualExpense = txtActualExpense.Text; //实际应交费用
                string chineseExpense = DecimalToChinese.ConvertSum(actualExpense); //实际应交费用的中文大写
    
       //读取图片模板
                Image temp = Image.FromFile(@"Receipts.jpg");
                GetResultIntoImage(ref temp, UserId, flowId, date, baseExpense, fine, upExpense, actualExpense, chineseExpense, payDate, adminId);
                int x = e.MarginBounds.X;
                int y = e.MarginBounds.Y;
                int width = temp.Width;
                int height = temp.Height;
                Rectangle destRect = new Rectangle(x, y, width, height);
                e.Graphics.DrawImage(temp, destRect, 0, 0, temp.Width, temp.Height, System.Drawing.GraphicsUnit.Pixel);
            }
    
            /// <summary>
            /// 将收费结果填充到图片模板
            /// </summary>
            private void GetResultIntoImage(
                ref Image temp,
                string userId,
                string flowId,
                string currentDate,
                string baseExpense,
                string fine,
                string upExpense,
                string actualExpense,
                string chineseExpense,
                string payDate,
                string adminName)
            {
                //读取图片模板
                Graphics g = Graphics.FromImage(temp);
    
                Font f = new Font("宋体", 12);
                Brush b = new SolidBrush(Color.Black);
                
       //填充数据到图片模板(位置要在制作图片模板的时候度量好)
                g.DrawImage(temp, 0, 0, temp.Width, temp.Height);
                g.DrawString(userId, f, b, 168, 105);
                g.DrawString(UserName, f, b, 166, 134);
                g.DrawString(flowId, f, b, 535, 105);
                g.DrawString(currentDate, f, b, 535, 134);
                g.DrawString(baseExpense, f, b, 219, 202);
                g.DrawString(fine, f, b, 372, 202);
                g.DrawString(upExpense, f, b, 486, 202);
                g.DrawString(actualExpense, f, b, 596, 202);
                g.DrawString(chineseExpense, f, b, 196, 238);
                g.DrawString(payDate, f, b, 176, 269);
                g.DrawString(adminName, f, b, 497, 298);
    
                g.Dispose();
            }
            #endregion 
  • 相关阅读:
    IIS的各种身份验证详细测试
    HTTP Error 401.3 Unauthorized Error While creating IIS 7.0 web site on Windows 7
    C/S and B/S
    WCF ContractFilter mismatch at the EndpointDispatcher exception
    Configure WCF
    Inheritance VS Composition
    Unhandled Error in Silverlight Application, code 2103 when changing the namespace
    Java RMI VS TCP Socket
    Principles Of Object Oriented Design
    Socket处理发送和接收数据包,一个小实例:
  • 原文地址:https://www.cnblogs.com/AndyGe/p/3044516.html
Copyright © 2011-2022 走看看