其中主要注意的是,我们传递的图片数据需要采用Base64String的格式才能正常传递和展示 。
2、报表传递图片数据完成了报表的设计处理,我们剩下的就是在实际的报表中传递对应的参数数据了 。
我们把签名图片,放在相对的目录上,如下所示 。
文章插图
然后编写一个公用的读取图片为Base64String的函数处理,如下所示 。
//通过姓名获取签名图片的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();
经验总结扩展阅读
- 没打发好的蛋清怎么利用
- 在家里如何自制冰块(自制冰块模具废物利用)
- 厨余垃圾再利用后的成品有哪些
- 利用诙谐赢得女神芳心的星座男
- 如何利用废旧钢材
- Jupyter,Matplotlib,Pandas 【机器学习】利用 Python 进行数据分析的环境配置 Windows
- 利用Pandas处理数据 缺失值的处理 数据库的使用 python-数据描述与分析2
- 哪些国家开展了黄粉虫的研究利用
- 旧电脑电源利用
- 电子指南针怎么看方向(如何利用手机指南针判别方向)