成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

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

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

瀏覽:403日期: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
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
久久激情综合网| 欧美喷水一区二区| 欧美三级韩国三级日本三斤| 日韩欧美视频一区| 亚洲美女在线国产| 久久99国产精品尤物| 成人免费观看av| 久久岛国电影| 国产欧美日韩视频一区二区| 日韩av一二三| 欧美私人啪啪vps| 欧美日韩亚洲综合在线 | 日本伊人午夜精品| 欧美一区亚洲| 欧美日韩大陆一区二区| 亚洲柠檬福利资源导航| 国产成人欧美日韩在线电影| a91a精品视频在线观看| 久久综合九色综合97婷婷| 亚洲va天堂va国产va久| 欧美精品麻豆| 欧美一区二区在线免费观看| 亚洲在线一区二区三区| 欧美精选在线| 日韩三级精品电影久久久 | 717成人午夜免费福利电影| 亚洲精品国产高清久久伦理二区| 成人一区在线看| 色婷婷综合久久久久中文| 国产精品进线69影院| 成人免费三级在线| 色网站国产精品| 亚洲日本一区二区三区| 欧美一区二区| 日韩精品一区二区三区视频在线观看| 日韩黄色小视频| 亚洲神马久久| 国产精品久久久一本精品| 高清不卡一二三区| 欧美日韩国产天堂| 奇米色777欧美一区二区| 国产亚洲一区在线播放| 亚洲欧洲av一区二区三区久久| k8久久久一区二区三区| 欧美一区二区三区视频在线 | 亚洲精品一区二区精华| 国产成人av电影在线| 在线观看欧美黄色| 亚洲一二三四在线| 91久久在线| 中文字幕在线观看不卡| 欧美激情1区2区3区| xnxx国产精品| 99久久精品一区| 精品日韩欧美一区二区| 丁香婷婷综合五月| 欧美一区中文字幕| 国产91丝袜在线播放九色| 制服.丝袜.亚洲.另类.中文 | 久久日韩精品一区二区五区| 国产精品一区二区在线播放| 欧美美女bb生活片| 国产精品一卡二| 91精品久久久久久久99蜜桃| 国产老妇另类xxxxx| 欧美一级爆毛片| 成人av资源下载| 久久色在线观看| 欧美精品一线| 亚洲免费资源在线播放| 午夜亚洲伦理| 蜜臀久久99精品久久久久宅男 | av网站一区二区三区| 久久久久久久网| 国产精品99一区二区| 中文字幕一区二区三中文字幕| 亚洲精美视频| 免费在线欧美视频| 7777精品伊人久久久大香线蕉完整版| 国产黑丝在线一区二区三区| 欧美刺激午夜性久久久久久久| 欧美一区免费| 亚洲一区中文在线| 欧美系列日韩一区| 成人毛片视频在线观看| 国产精品福利一区| 久久久精品性| 国产成人午夜精品影院观看视频| 欧美zozo另类异族| 今天的高清视频免费播放成人| 亚洲一二三区不卡| 欧美日本国产视频| 91丨porny丨中文| 一区二区三区国产| 欧美日韩精品电影| 欧美久久在线| 午夜久久久影院| 日韩精品最新网址| 一区二区三区四区国产| 美女爽到高潮91| 久久久久久久综合日本| 亚洲激情一区| 国内精品视频一区二区三区八戒 | 宅男噜噜噜66一区二区| 国内精品伊人久久久久av一坑| 国产婷婷精品av在线| 性8sex亚洲区入口| 成人永久aaa| 亚洲一卡二卡三卡四卡| 日韩欧美国产一区二区三区| 韩国欧美一区| 国产在线精品一区二区不卡了| 久久久久久久电影| 在线观看欧美黄色| 欧美午夜一区二区福利视频| 久久超碰97中文字幕| 亚洲国产精品ⅴa在线观看| 色婷婷av一区二区三区之一色屋| 99精品1区2区| 另类小说图片综合网| 中文字幕一区二区三区四区| 欧美日韩精品免费观看视频| 亚洲国产精品一区制服丝袜| 丰满白嫩尤物一区二区| 亚洲自拍偷拍麻豆| 久久久久久久久久美女| 在线观看成人小视频| 国产精品porn| 国产成人午夜高潮毛片| 亚洲va中文字幕| 国产精品激情偷乱一区二区∴| 91麻豆精品国产91久久久久久| av成人免费观看| 欧美一区91| 国产福利一区二区三区视频在线| 亚洲国产一区二区三区青草影视| 久久久久久久久久久久电影| 欧美三级日韩三级| 美女日韩在线中文字幕| 国产精品国码视频| 成人a免费在线看| 韩国一区二区三区| 日韩中文字幕亚洲一区二区va在线| 中文字幕va一区二区三区| 欧美一区二区在线播放| 日本久久一区二区三区| 亚洲一区二区成人| 亚洲激情欧美| 国产一区日韩欧美| 91欧美一区二区| 成人免费高清在线| 国产美女精品在线| 久久99久久久久| 日韩成人伦理电影在线观看| 亚洲综合在线第一页| 综合婷婷亚洲小说| 国产精品天干天干在线综合| 精品伦理精品一区| 欧美一区二区三区公司| 欧美精品日日鲁夜夜添| 91久久人澡人人添人人爽欧美| 欧美一级二区| 国产日韩欧美一区二区三区在线观看| 好吊日精品视频| 欧美日韩视频在线一区二区观看视频 | 一区二区国产日产| 伊人影院久久| 国产主播一区二区三区四区| 色综合久久中文字幕综合网| 91丨porny丨最新| 91麻豆精品一区二区三区| 不卡的av网站| 97成人超碰视| 午夜精品网站| 国内久久精品| 99精品免费| 噜噜噜躁狠狠躁狠狠精品视频| 国产模特精品视频久久久久| 久久av一区二区| 欧洲av一区二区嗯嗯嗯啊| 欧美日韩亚洲另类| 在线电影一区二区三区| 欧美一级日韩免费不卡| 精品国产网站在线观看| 国产日产亚洲精品系列| 国产精品大尺度| 亚洲综合自拍偷拍| 免费观看在线综合| 久久66热偷产精品| 成人午夜免费电影| 欧美日韩精品免费观看| 最新成人av网站| 在线精品视频免费播放| 欧美电影影音先锋| 久久久久久97三级| 亚洲精品成人少妇| 美女视频黄 久久| www.视频一区| 日韩午夜免费视频| 欧美性生交片4|