利用FastReport传递图片参数,在报表上展示签名信息( 二 )


        //通过姓名获取签名图片的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++;    }

推荐阅读