//通过姓名获取签名图片的Base64 private string GetSignImage(string signName) { var result = ""; string imagePath = Path.Combine(baseDir, $"Report/signs/{signName}.png"); if (File.Exists(imagePath)) { var stream = FileUtil.FileToStream(imagePath); var image = FileUtil.StreamToBytes(stream); if (image != null) { result = Convert.ToBase64String(image); } } return result; }接着就是根据对应的报表进行加载,并设置相关的参数进行传递给报表即可,如下测试代码所示 。
//生成PDF报表文档到具体文件 Report report = new Report(); report.Load(reportFile); //定义参数和数据格式 var dict = new Dictionary<string, object>(); #region 测试数据源 dict.Add("Name", "张三"); dict.Add("Gender", "男"); dict.Add("Age", 32); dict.Add("Telephone", "18620292076"); dict.Add("CreateTime", "2019-10-13 22:30:15"); dict.Add("CheckDoctor", GetSignImage("张医生"));//"张医生" dict.Add("CheckPharmacist", GetSignImage("张医生")); //"李药师" dict.Add("SendUser", "王小姐"); dict.Add("QrCode", "http://www.iqidi.com"); dict.Add("BarCode", "1234567890"); //图片文件 dict.Add("ShopDoctor", GetSignImage("张医生")); dict.Add("Tiaopei", GetSignImage("张医生")); dict.Add("Fayao", GetSignImage("王小姐")); #endregion report.RegisterData(dt, "Detail"); foreach (string key in dict.Keys) { report.SetParameterValue(key, dict[key]); } //运行报表 report.Prepare();由于我们的报表,最终是生成PDF或者图片的方式 , 方便客户进行在线查询的,因此可以选择PDF或者图片的格式生成 。
//运行报表 report.Prepare(); //导出PDF报表 //PDFExport export = new PDFExport(); //多个图片导出 int count = 1; string firstFileName = exportImgPath.Replace(".png", ""); foreach (PageBase item in report.Pages) { string fileName = string.Format("{0}_{1}.png", firstFileName, count); exportImgPath = fileName; //Resolution= 300可以提高分辨率 report.Export(new ImageExport() { PageRange = PageRange.Current, CurPage = count, Resolution= 300 }, fileName); count++; }
推荐阅读
- 在家里如何自制冰块(自制冰块模具废物利用)
- Jupyter,Matplotlib,Pandas 【机器学习】利用 Python 进行数据分析的环境配置 Windows
- 利用Pandas处理数据 缺失值的处理 数据库的使用 python-数据描述与分析2
- 火山小视频是真的能赚钱吗(怎么利用抖音火山赚钱)
- 电子指南针怎么看方向(如何利用手机指南针判别方向)
- frp服务利用云主机实现Windows远程连接
- frp服务利用云主机docker服务实现Windows远程连接
- 利用msg_msg实现任意地址读写
- 慈善基金会怎么赚钱,有利用这搞传销的吗 慈善基金会怎么赚钱
- 我国首批新能源汽车电池迎来“退役潮”,废旧电池所含的金属如何充分利用?