范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

电子签章处理文件和打印基于ABP框架的前端项目VueampampampElement

  在一些内部OA或者流转的文件,或者给一些客户的报价文件、合同,或者一些医院出示的给保险机构的病历资料等,有时候可能都希望快速的使用电子签章的处理方式来给文件盖上特定的印章,本篇随笔介绍基于Vue&Element的前端项目采用第三方组件
  vue-drag-resize和图片转换Base64的方式实现图片印章的盖章处理。 1、图片转换为Base64处理
  图片转换为Base64编码可以通过在线工具的转换方式实现图片转Base64编码,网上很多在线的处理,百度一下即可。
  如:https://c.runoob.com/front-end/59/ 或者 https://tool.chinaz.com/tools/imgtobase 试过都可以,非常方便。
  如果我们喜欢通过C#代码进行图片的转换也可以使用自己封装的函数实现处理,如下所示。
  Base64 在CSS中的使用 .demoImg{ background-image: url("//imgq7.q578.com/ef/0323/1a1ee134683cb153.jpg"); }
  Base64 在HTML中的使用 
  我们使用C#代码转换的处理代码如下所示。         private void btnBase64_Click(object sender, EventArgs e)         {             var base64 = ImageHelper.ImageToBase64Str(this.pictureBox1.Image);             if(chkData.Checked)             {                 base64 = "data:image/jpeg;base64," + base64;             }             this.txtBase64.Text = base64;         }
  而其中调用是通过我们公用类库中的图片辅助类进行,详细转换代码如下所示。         ///          /// 从文件中转换图片对象到Base64编码         ///          /// 图片文件路径         ///          public static string ImageToBase64Str(string imageFilePath)         {             Image image = Image.FromFile(imageFilePath);             using (MemoryStream ms = new MemoryStream())             {                 image.Save(ms, image.RawFormat);//ImageFormat.Jpeg                 byte[] imageBytes = ms.GetBuffer();                 string imgBase64Str = Convert.ToBase64String(imageBytes);                  //释放资源,让别的使用                 image.Dispose();                 return imgBase64Str;             }         }          ///          /// 转换图片对象到Base64编码         ///          /// Image图片对象         ///          public static string ImageToBase64Str(Image image)         {             using (MemoryStream ms = new MemoryStream())             {                 image.Save(ms, image.RawFormat);//ImageFormat.Jpeg                 byte[] imageBytes = ms.GetBuffer();                 string imgBase64Str = Convert.ToBase64String(imageBytes);                 return imgBase64Str;             }         }
  这样,我们在前端Vue的项目中,就可以赋值这段图片Base64代码到HTML文件中就可以了,如下是前端Vue项目代码所示(缩减了部分Base64编码)。
  这样我们就可以在页面中放置一个Base64编码的图片在页面中了。
  2、使用vue-drag-resize组件实现印章图片的拖动
  常规的图片,放置在页面中,位置是固定的,如果我们需要拖动印章,那么就需要引入可拖动面板的Vue组件vue-drag-resize来处理它了。
  vue-drag-resize是Github上的一个开源组件,地址是:https://github.com/kirillmurashov/vue-drag-resize
  这个组件的使用和其他组件的使用方式一样,非常方便。 import Vue from "vue" import VueDragResize from "vue-drag-resize"  Vue.component("vue-drag-resize", VueDragResize)
  在组件或者页面中使用的代码如下所示。 import VueDragResize from "vue-drag-resize" export default {   components: { VueDragResize },
  它的HTML代码如下所示。 
  为了把印章图片可以拖动,我们在HTML中放置印章图片包含在这个组件面板中。
  如下面代码所示。
  把图片放置在这个组件容器中后,图片就可以随意拖动,确认位置后,就可以确定它的位置,我们可以通过记录图片的位置X, Y的值并存储起来,下次直接确定位置也可以。
  定义组件的初始X位置。 
  定义组件的初始Y位置。 
  例如我们定义了一个报价单,并通过设置,把图片放置在页面中,让使用者可以通过拖动印章的方式,放到合适的位置上去,然后进行打印报价单即可带有印章的报价单出来了。
  这样就可以实现电子印章的拖动和放置处理了,记住其位置和状态,下次就可以直接定位到指定的位置上了。
  另外,一般文档都需要打印,关于打印的处理,有很多方式,可以使用print.js(https://github.com/crabbly/Print.js),也可以使用 vue-print-nb (https://github.com/Power-kxLee/vue-print-nb),甚至复杂的定义可以考虑使用CLODOP组件来处理,不过我们这里可以简单的内置Windows 对象的打印操作方式来处理普通的页面打印即可。
  print () {       const print = this.$refs.print.innerHTML       const printPart = print + csstyle;       const newTab = window.open("_blank");       newTab.document.body.innerHTML = printPart;       newTab.print();       newTab.close();     },
  打印效果如下所示,采用了对应的CSS样式处理后,和实际的页面效果相当。
  在项目中,涉及到了html内容打印的需求,调用了浏览器的window.print用于打印显示不全问题
  由于window.print是1:1打印,打印内容过宽时,浏览器会自动从左截取掉超宽部分,因此在打印前需将页面进行调整
  打印页边距设定为 0mm 时,网页内最大元素的分辨率:794 1123
  因此可以将内容p设置为700px,剩余空间设置为页边距 去除浏览器默认页眉页脚
  页眉打印默认有页眉页脚信息,展现到页面外边距范围,我们可以通过去除页面模型page的外边距,使得内容不会延伸到页面的边缘,再通过设置 body 元素的 margin 来保证 A4 纸打印出来的页面带有外边距
  由于window.print打印自带页眉页脚,用于存放打印url,日期时间,页面名称等内容,为屏蔽这些内容可使用css进行屏蔽 @media print {   @page {     margin: 0;   }   body {     margin: 1cm;   } }
  只屏蔽页脚 @page { margin-bottom: 0; }事件监听
  有两个事件可以监听到到打印事件,一个是 beforeprint  ,一个是afterprint  ,分别表示打印事件触发前后。
  这个事件在 IE6 就已经支持了,兼容大概是 Firefox、IE全支持, Chrome63+支持, Safari暂不支持
  我们可在处理事件onbeforeprint() 将一些不需要打印的元素隐藏,和打印后的处理事件 onafterprint()放开隐藏的元素 window.addEventListener("beforeprint", ()=> {   document.body.innerHTML = "打印前触发"; });  window.addEventListener("afterprint", ()=> {   document.body.innerHTML = "打印后触发"; });设置打印布局(横向、纵向、边距) @media print {     @page {       // 纵向       size: portrait;         // 横向       size: landscape;         // 边距       margin: 0cm 0cm 0cm 0cm;     }   }
  文章转自https://www.cnblogs.com/wuhuacong/p/16033604.html

在沈阳安装宽带哪个好?这几家宽带我个人都用过。如果楼主对网络要求比较高,比如玩游戏需要稳定性。家里人看直播电视为主。那建议楼主安联通宽带,当然了个别小区联通网络也比较差,而且比其他家宽带价格都要高,还有医疗数据合规观察医美数据安全合规突破口电子病历缘何难以推广?21世纪经济报道记者武瑛港北京报道编者按医疗大数据产业作为国家最早布局和推动数据要素市场的行业,正进入飞速发展时期。与此同时,去年以来,个人信息保护法数据安全法等数据立法框架搭建并超长预售期只设智能客服这些被中消协点名中新财经4月28日电(记者谢艺观)28日,中消费发布新消费领域投诉情况专题报告,一些网络商家设置超长预售期,部分网络平台运用算法实施价格歧视,一些网络平台只设置智能客服等问题被一一华为悄悄上架5G新机,没有鸿蒙,8256G卖价1999元最近关于国产手机的一些焦点又开始转移到华为身上!按照余承东的说法,华为已经想方设法解决了一些产能供应链上的问题,接下来华为手机确实要正常发布了。有意思的是,在余承东这样说了之后,华移动互联网大分享时代互联网时代有一个非常大的驱动力,那就是分享。分享促使互联网进入高速发展的时代,也为很多人提供了发展机会。如何能够在这个时代为用户提供更多更好的服务,才是广大互联网企业最值得思考的问强悍双芯显实力全新一代iQOONeo6评测4月13日晚,iQOO正式发布了新一代iQOONeo6手机,作为新一代Neo系列,iQOONeo6为消费者带来了全面的潮酷体验,同时在售价方面也比较亲民,仅2799元起。iQOON用计算音频赋能高端电视市场,华为智慧屏VPro强势来袭最近几年,电视最核心的显示技术出现了发展瓶颈,不过显示技术在十字路口徘徊不前,但电视产品依然在不断迭代升级,除了增加新应用场景的语音摄像头智能家居等功能技术之外,厂商更倾向于比拼音大数据毕业后可以去什么岗位就业近年来,研发工程师产品经理人力资源市场营销运营和数据分析是当下中国互联网行业需求最旺盛的六类人才职位,其中研发工程师需求量最大,而数据分析人才最为稀缺。大数据毕业后会去做什么工作大GPU暴跌,是缺芯潮结束的信号吗?路透社4月25日消息称,最近GPU价格的大幅下降使得一些机构作出了全球芯片危机结束在即的预测。这场持续了几年的危机已经成为了智能手机行业和汽车制造业等相关行业头上不散的阴云。英特尔小清新的纯电新贵代步车又多新选择太平洋汽车网导购频道几何E,是吉利集团几何品牌旗下的第四款量产车型。新车车长超过4米,轴距接近2。5米,定位小型纯电SUV。使用全新外观和内饰设计的几何E看起来年轻活泼许多。青蔓,你看好骁龙8Gen1Plus吗消息称台积电版新骁龙8Gen1Plus(SM8475)性能提升10,且温控良好芯片运行稳定,电池续航成绩也比8Gen1测试机要优秀,第一批商用设备预计6月份登场。据消息称高通发布2
ECO模式是否真的能省油,它省油的原理是什么?EcO模式真的可以降低油耗,不过只是适当降低油耗收益不大,原因就是它可以避免因为动力过剩带来的能量损失,导致不必要的燃油增加车辆在行驶中是否能开关EcO,取决于是否提供了手动关闭的浅谈ECO模式原理,以及ECO模式对变速箱的影响ECO模式对变速箱没有影响,不会减少变速箱的使用寿命(不知道鄙人对于题目中影响一词的理解是否准确?),不过ECO模式的实现,需要变速箱进行配合所以ECO模式的运行,是有变速箱参与内体验100倍变焦电影模式,荣耀Magic3Pro影像系统详解荣耀Magic3开售已经有十来天的时间了,肯定也有不少朋友已经拿到了这台手机,不知道大家觉得使用体验怎么样?我们拿到的时间比较早,算起来已经差不多有一个月了,也算是有了比较深度的体无人机只知大疆?聊聊我玩过的十几种奇妙样式无人机背景提到无人机,大多数朋友可能只能想到大疆DJI。确实,作为中国高科技领域的先锋,大疆在消费级无人机领域,在全球都是霸主之姿,科技水平至少领先竞品数年,可以说是一张熠熠生辉的中国高涡轮增压发动机该如何挑选合适的机油?涡轮增压车最好添加半合成机油或者全合成机油,如果非要添加矿物质油也在确保粘度适合的情况下,尽可能的用更高的机油等级,比如至少要添加API认证的SM或者更高的SN级,当然也可以使用A如何选择合适的机油?浅谈机油的那些事机油是机械运行时必不可少的润滑用品,很多朋友在选择机油的时候都会面临一些选择性的问题,这些问题有的是关于全合成,半合成,矿物质油之间差异的疑惑,而有些则是不知道该如何去选择机油的标OPPOFindX2Pro体验其实,数码生活可以更轻松喜欢数码产品很多年了,之前也发过EDC什么的,自己平常出门兜里面揣一个手机裤兜里面装索尼ZX300A用索尼XBAN3BP听歌背包里面装kindle索尼a7R3(出去时间长的话还会装滕Gallery其实,数码生活可以更轻松喜欢数码产品很多年了,之前也发过EDC什么的,自己平常出门兜里面揣一个手机裤兜里面装索尼ZX300A用索尼XBAN3BP听歌背包里面装kindle索尼a7R3(出去时间长的话还会装年终盘点2019都买了什么东西(数码篇)作为一个喜欢数码的摄影师,在2019年继续进行着买买买卖卖卖的过程,今天是2019年的倒数第二天,回首望一下2019年整年,买了不少东西,也卖了不少东西,是时候做一个总结,记录下来物尽其用,是对它们最好的尊重生产力工具分享从第一份考古的工作结束之后,就开始了自己之前向往的工作做一个摄影师,去年一年去过很多地方韩国首尔辽宁沈阳湖南怀化西安小寨西安大雁塔中卫鼓楼也拍过很多人初中同学朋友的高中同学明星刘涛科普入门数字钱包如何确保安全,这些小知识告诉你快乐三天,中秋假期就这样悄咪咪地溜走了,没关系,再上四天班,迎接更加快乐的国庆假之前有看子番写的科普文的胖友们应该知道,挖矿的过程就是矿工们争夺区块链网络中的记账权,谁得到了记账权