<vue-drag-resize :x="0">
定义组件的初始Y位置 。
<vue-drag-resize :y="0">
例如我们定义了一个报价单,并通过设置,把图片放置在页面中,让使用者可以通过拖动印章的方式,放到合适的位置上去,然后进行打印报价单即可带有印章的报价单出来了 。
文章插图
这样就可以实现电子印章的拖动和放置处理了,记住其位置和状态,下次就可以直接定位到指定的位置上了 。
另外,一般文档都需要打印,关于打印的处理,有很多方式,可以使用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.innerHTMLconst printPart = print + csstyle;const newTab = window.open('_blank');newTab.document.body.innerHTML = printPart;newTab.print();newTab.close();},
文章插图
【电子签章处理文件和打印基于ABP框架的前端项目Vue&Element】
打印效果如下所示,采用了对应的CSS样式处理后,和实际的页面效果相当 。
文章插图
在项目中,涉及到了html内容打印的需求,调用了浏览器的window.print用于打印显示不全问题由于window.print是1:1打印,打印内容过宽时,浏览器会自动从左截取掉超宽部分,因此在打印前需将页面进行调整
打印页边距设定为 0mm 时,网页内最大元素的分辨率:794×1123
因此可以将内容div设置为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
推荐阅读
- Android APK 程序实现自动更新,java服务处理无弹窗,终极解决方案
- 含答案 全网最全的Java岗网络编程+异常处理面试题
- hr|HR辱骂大学生“垃圾”,这回网友的天平倾向了企业,处理结果如何
- 红茶放存了如何处理,速溶红茶喷雾干燥条件
- 英特尔全新开拓的P系列处理器到底什么来头?
- AMD|3000多亿的收购没白花 AMD处理器明年集成AI功能:超越CPU/GPU
- 运动损伤的处理办法有哪些?
- CPU处理器|日本不甘落后 将联手美国开发2nm芯片工艺:赶超台积电
- 诉讼|A15/M1处理器大量机密文件外泄 可被逆向工程:苹果起诉创业公司盗取
- 山东|山东电子健康码再“升级”:疫情防控通行证明一页显示