日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

利用FastReport傳遞圖片參數在報表上展示簽名信息的實現方法

瀏覽:32日期:2022-06-08 16:21:16
目錄
  • 1、報表上的設計處理
  • 2、報表傳遞圖片數據

在一個項目中,客戶要求對報表中的簽名進行仿手寫的簽名處理,因此我們原先只是顯示相關人員的姓名的地方,需要采用手寫方式簽名,我們的報表是利用FastReport處理的,在利用楷體處理的時候,開發展示倒是正常效果,不過實際上在服務器運行的時候,出來的確實正規的宋體格式,相應的字體都已經安裝,不過還是沒有生效。因此采用變通的方式,在對應簽名的地方采用圖片的格式顯示,實際效果達到要求。本篇隨筆介紹這個過程,利用FastReport傳遞圖片參數,在報表上展示簽名信息的處理。

在一個項目中,客戶要求對報表中的簽名進行仿手寫的簽名處理,因此我們原先只是顯示相關人員的姓名的地方,需要采用手寫方式簽名,我們的報表是利用FastReport處理的,在利用楷體處理的時候,開發展示倒是正常效果,不過實際上在服務器運行的時候,出來的確實正規的宋體格式,相應的字體都已經安裝,不過還是沒有生效。因此采用變通的方式,在對應簽名的地方采用圖片的格式顯示,實際效果達到要求。本篇隨筆介紹這個過程,利用FastReport傳遞圖片參數,在報表上展示簽名信息的處理。

1、報表上的設計處理

例如我們要在報表落款的附近記錄相關人員的名字,因此采用簽名的顯示方式會比較合理。

因此設計相關的報表,本來想是采用文本的方式,變化字體的方式來快捷實現的

不過在報表是在服務器上生成圖片的方式,導致正常出來的圖片,卻沒有變化字體,導致出來的是正常的宋體格式。

因此考慮使用圖片的格式方式來處理。在其中放置Picture控件,如下所示。

調整好Picture控件的高度和寬度,讓它在設計的空白上合適的展示即可。

為了實現圖片格式的顯示,我們需要在報表的圖片控件的BeforePrint事件中解析數據(來自傳遞參數),數據格式為Base64字符串(從Byte數據轉換),如下代碼所示。

namespace FastReport{  public class ReportScript  {    private void shopDoctorImg_BeforePrint(object sender, EventArgs e)    {      var img = GetImage("ShopDoctor");      if(img != null){shopDoctorImg.Image=img;        }    }       private void tiaopeiImg_BeforePrint(object sender, EventArgs e)    {          var img = GetImage("Tiaopei");      if(img != null){tiaopeiImg.Image=img;        }    }           private void CheckDoctorImg_BeforePrint(object sender, EventArgs e)    {      var img = GetImage("CheckDoctor");      if(img != null){CheckDoctorImg.Image=img;        }    }    private void CheckPharmacistImg_BeforePrint(object sender, EventArgs e)    {             var img = GetImage("CheckPharmacist");      if(img != null){CheckPharmacistImg.Image=img;        }    }    private Image GetImage(string signName)    {       Image img = null;      string imgStr = (string)Report.GetParameterValue(signName);      if(!string.IsNullOrEmpty(imgStr))      {byte[] imgData= Convert.FromBase64String(imgStr);using(MemoryStream ms = new MemoryStream(imgData)){  img = System.Drawing.Image.FromStream(ms);    }      }      return img;    }  }}

其中主要注意的是,我們傳遞的圖片數據需要采用Base64String的格式才能正常傳遞和展示。

2、報表傳遞圖片數據

完成了報表的設計處理,我們剩下的就是在實際的報表中傳遞對應的參數數據了。

我們把簽名圖片,放在相對的目錄上,如下所示。

然后編寫一個公用的讀取圖片為Base64String的函數處理,如下所示。

//通過姓名獲取簽名圖片的Base64private 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++;    }

最后生成的圖片格式如下所示,順利吧簽名的圖片貼在對應的單元格中即可。

到此這篇關于利用FastReport傳遞圖片參數在報表上展示簽名信息的文章就介紹到這了,更多相關FastReport傳遞圖片參數內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: ASP.NET
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩中文在线电影| 香蕉人人精品| 日av在线不卡| 99在线精品免费视频九九视 | а√天堂8资源中文在线| 日韩av一区二区三区四区| 鲁大师成人一区二区三区| 国产亚洲永久域名| 亚洲综合不卡| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲精华国产欧美| 免播放器亚洲| 日韩精品三级| 国产精品一区高清| 红杏一区二区三区| 久久蜜桃精品| 国产亚洲午夜| 亚洲免费毛片| 国产毛片精品久久| 国产在线不卡一区二区三区| 日韩精品91| 日韩高清中文字幕一区二区| 日韩精品欧美| 亚洲欧洲一区二区天堂久久| 日韩在线观看一区二区| 亚洲欧洲美洲国产香蕉| 日韩中文字幕av电影| 亚洲精品黄色| 美女毛片一区二区三区四区最新中文字幕亚洲 | 一区二区国产在线观看| 日韩欧美激情电影| 国产精品久久777777毛茸茸| 中文字幕在线官网| 亚洲无线一线二线三线区别av| 天海翼精品一区二区三区| 亚洲综合二区| 国产欧美日韩精品高清二区综合区| 免费视频一区二区三区在线观看| 欧美91在线| 日产精品一区| 蜜桃传媒麻豆第一区在线观看 | 美女国产精品| 日本电影久久久| 国产中文欧美日韩在线| 91精品观看| 久久激情五月激情| 日韩在线中文| 亚洲综合婷婷| 福利片在线一区二区| 夜夜嗨网站十八久久| 国产一精品一av一免费爽爽| 日产精品一区| 日韩精品欧美大片| 欧美日韩视频网站| 亚洲日产av中文字幕| 粉嫩av一区二区三区四区五区| 亚洲先锋成人| 91精品日本| 久久精品1区| 欧美一级二级视频| 在线日韩电影| 欧美激情aⅴ一区二区三区 | 国产精品夜夜夜| 午夜国产精品视频免费体验区| 欧美亚洲色图校园春色| 日韩精品水蜜桃| 国产日本精品| 亚洲免费网址| 天堂中文av在线资源库| 麻豆91精品| 国产成人精品三级高清久久91 | 国产色噜噜噜91在线精品| 欧美日韩精品免费观看视完整| 日韩一区二区三区精品| 久久精品中文| 国产亚洲高清在线观看| 在线亚洲精品| 麻豆视频在线观看免费网站黄| 亚洲久久一区| 激情五月综合网| 久久精品色播| 91伊人久久| 黄色欧美日韩| 深夜福利视频一区二区| 久久国产精品色av免费看| 国产日韩综合| 久久免费高清| 国产黄大片在线观看| 国产欧美亚洲精品a| 在线观看亚洲精品福利片| 激情欧美国产欧美| 亚洲日本网址| jizzjizz中国精品麻豆| 久久爱www成人| 日韩高清一区在线| 中文一区一区三区免费在线观| 亚洲韩日在线| bbw在线视频| 精品一区二区三区中文字幕视频 | 欧美精选视频一区二区| 国产伦精品一区二区三区千人斩 | 日韩在线视频一区二区三区| 999国产精品| 欧美一区久久久| 老色鬼精品视频在线观看播放| 丝袜诱惑制服诱惑色一区在线观看| 99热精品久久| 午夜影院一区| 国产一二在线播放| 国产成人在线中文字幕| 国产精品白丝久久av网站| 日本v片在线高清不卡在线观看| 久久亚洲色图| 男人的天堂久久精品| 午夜免费一区| 免费av一区二区三区四区| 日韩中文影院| 麻豆视频在线看| 日本а中文在线天堂| 国产精品精品国产一区二区| 精品中文字幕一区二区三区| 久久精品二区亚洲w码 | 精品久久精品| 国产一区丝袜| 91亚洲一区| 一本大道色婷婷在线| 日韩欧美二区| 婷婷激情一区| 国精品一区二区| 激情综合网址| 一区免费在线| 国产农村妇女精品一二区| 久久国产99| 日韩在线黄色| 国产伦精品一区二区三区视频| 国产日韩欧美三级| 麻豆视频一区| а√天堂8资源中文在线| 国产一区二区视频在线看| 日本欧美久久久久免费播放网| 99在线精品视频在线观看| 国产综合婷婷| 国产午夜精品一区二区三区欧美 | 免费视频一区二区三区在线观看| 国产专区一区| 一区在线免费| 伊人久久av| 亚洲一区资源| 亚洲精品在线影院| 欧美日韩国产一区二区三区不卡| 亚洲激情久久| 中文一区一区三区免费在线观 | 亚洲大全视频| 日韩午夜在线| 婷婷成人av| 精品视频一区二区三区在线观看| 岛国av在线播放| 偷拍欧美精品| 伊人国产精品| 国产欧美日韩亚洲一区二区三区| 久久精品一区二区三区中文字幕| www.51av欧美视频| 欧洲激情综合| 亚洲人成网站在线在线观看| 91精品国产自产观看在线| 国产精品一区2区3区| 高潮久久久久久久久久久久久久| 91精品啪在线观看国产18| 美女国产精品| 久久gogo国模啪啪裸体| 久久久久99| 蜜桃久久精品一区二区| 国产精品一区毛片| 成人在线黄色| 国产精品日本欧美一区二区三区| 日本精品另类| 亚洲一级少妇| 亚洲人亚洲人色久| 精品久久久久中文字幕小说| 91成人精品| 国产精品视频一区二区三区综合| 免费在线小视频| 亚州av一区| 欧美精选视频一区二区| 亚洲乱码视频| 天堂√中文最新版在线| 在线一区二区三区视频| 精品国产不卡一区二区| 欧美va亚洲va日韩∨a综合色| 日韩超碰人人爽人人做人人添| 神马久久午夜| 日韩不卡一区二区三区| 久久久久99| 国产精品高清一区二区| 欧美日韩激情| 久久精品国产亚洲一区二区三区| 亚洲一区不卡| 中国字幕a在线看韩国电影| 日本伊人久久| 久久一级电影|