zoukankan      html  css  js  c++  java
  • C#实现打印

    C#实现导出pdf文件,打印




    using
    System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using BusinessFacade; using System.IO; using Common.Table; using CrystalDecisions.Shared; using CrystalDecisions.CrystalReports.Engine; public partial class Pages_ReportFile_BhXjspf_XjspfCheckList : PageBase { ReportDocument myReportDoc = new ReportDocument(); private void SetParameterValue(string strColumn, string strValue) { myReportDoc.SetParameterValue(strColumn, strValue); } protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { string strResult0 = ""; string strResult1 = ""; string strResult2 = ""; string strBuildArea = string.Empty; string strHouseCount = string.Empty; string strPerBuild = string.Empty; string strPage = string.Empty; string strCount = string.Empty; this.CheckPageParameter(); string strError = string.Empty; PrintSystem mySystem = new PrintSystem(base.UserSessionID); DataSet myData = new DataSet(); myData = mySystem.mothed(this.GetSessionParameterValue("FILE_ID"), out strError); if (!string.IsNullOrEmpty(strError)) { webTools.InsertAlert(this.Page, webTools.FilterInvalidString(strError)); webTools.closewin(this.Page); return; } myData.Tables[LY_ZG_XJSPF_TABLE.LY_ZG_XJSPF_TABLENAME].Columns.Add("QRCODE", typeof(System.Byte[])); myData.Tables[LY_ZG_XJSPF_TABLE.LY_ZG_XJSPF_TABLENAME].Rows[0]["QRCODE"] = ProductQR(myData); myData.AcceptChanges(); if (!string.IsNullOrEmpty(myData.Tables[0].Rows[0]["GZ_RESULT"].ToString())) { switch (myData.Tables[0].Rows[0]["GZ_RESULT"].ToString()) { case "0": strResult0 = ""; strResult1 = "×"; strResult2 = "×"; break; case "1": strResult1 = ""; strResult0 = "×"; strResult2 = "×"; break; case "2": strResult2 = ""; strResult0 = "×"; strResult1 = "×"; break; } } for (int i = 0; i < myData.Tables[LY_FAMILYHOUSEINFORMATION_TABLE.LY_FAMILYHOUSEINFORMATION_TABLENAME].Rows.Count; i++) { strHouseCount = myData.Tables[2].Rows[i]["HouseCount"].ToString(); if (!string.IsNullOrEmpty(myData.Tables[2].Rows[i]["SumIDENTIFIEDAREA"].ToString())) { strPerBuild = Convert.ToString(Math.Round((Convert.ToDouble(myData.Tables[2].Rows[i]["SumIDENTIFIEDAREA"].ToString()) / Convert.ToDouble(myData.Tables[0].Rows[0]["PersonCount"].ToString())), 2)); strBuildArea = myData.Tables[2].Rows[i]["SumIDENTIFIEDAREA"].ToString(); } } for (int i = 0; i < myData.Tables[LY_H_RECEIVE_TABLE.LY_H_RECEIVE_TABLENAME].Rows.Count; i++) { strCount = myData.Tables[3].Rows[i]["counts"].ToString(); strPage = myData.Tables[3].Rows[i]["pages"].ToString(); } myReportDoc.Load(Server.MapPath(@"rptxjspfChecklist.rpt")); myReportDoc.SetDataSource(myData);//这里必须先设置数据源,然后再设置参数,否则报‘找不到参数’的错误 myReportDoc.SetParameterValue("Result0", strResult0); myReportDoc.SetParameterValue("Result1", strResult1); myReportDoc.SetParameterValue("Result2", strResult2); myReportDoc.SetParameterValue("BuildArea", strBuildArea); myReportDoc.SetParameterValue("HouseCount", strHouseCount); myReportDoc.SetParameterValue("PerBuild", strPerBuild); myReportDoc.SetParameterValue("page", strPage); myReportDoc.SetParameterValue("count", strCount); try { DiskFileDestinationOptions myDestinationFile = new DiskFileDestinationOptions(); string filename = ""; filename = System.DateTime.Now.ToString("yyyyMMddhhmmssfff") + ".pdf"; Stream stream = myReportDoc.ExportToStream(ExportFormatType.PortableDocFormat); byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); stream.Close(); String contentType = "application/octet-stream"; Response.Clear(); Response.ClearContent(); Response.ClearHeaders(); Response.Buffer = false; Response.AddHeader("Content-Disposition", "attachment; filename=" + filename); Response.AddHeader("Content-Length", bytes.Length.ToString()); Response.Charset = "GB2312"; Response.ContentType = contentType; Response.BinaryWrite(bytes); Response.Flush(); Response.End(); } catch (System.Exception exp) { throw exp; } } } private byte[] ProductQR(DataSet myData) { DataTable mytable = myData.Tables[0]; string strFILE_ID = mytable.Rows[0][LY_ZG_XJSPF_TABLE.FILE_ID_FIELD].ToString().Trim(); string strRegister_num = mytable.Rows[0][LY_ZG_XJSPF_TABLE.REGISTER_NUM_FIELD].ToString().Trim(); #region 设置QR码 string strCode = strRegister_num + " ";//"审核表编号:" + strCode += strFILE_ID + " ";//"收件号:" + QRCode.Service1 QrCode = new QRCode.Service1(); return QrCode.GetQrCode(strCode); #endregion } private void Page_UnLoad(object sender, System.EventArgs e) { if (myReportDoc != null) { myReportDoc.Close(); myReportDoc.Dispose(); } } }
    1.注意rpt中的数据库专家中的xsd文件的类名必须和访问数据库返回的表名必须相同,否则会报登录数据库失败的错误
    见了他,她变得很低很低,低到尘埃里。但她心里是欢喜的,从尘埃里开出花来。魂牵梦绕,辗转反侧,可越是这样执着的爱,越是让我束手无策,无法表达,成就一段烽火佳话,迎接她
    包含深情炙热的眼光吧
  • 相关阅读:
    扫面线模板
    (动态规划、栈)leetcode 84. Largest Rectangle in Histogram, 85. Maximal Rectangle
    tmux 常见命令汇总
    leetcode 221
    leetcode 319 29
    (贪心)leetcode 392. Is Subsequence, 771. Jewels and Stones, 463. Island Perimeter
    leetcode 982 668
    Python import 同文件夹下的py文件的函数,pycharm报错
    Windows里Anaconda-Navigator无法打开的解决方案
    Windows下 gpu版 Tensorflow 安装
  • 原文地址:https://www.cnblogs.com/wangjp-1233/p/10235941.html
Copyright © 2011-2022 走看看