码迷,mamicode.com
首页 > 其他好文 > 详细

Vue 给页面加水印指令(directive)

时间:2020-07-22 02:03:04      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:context   ase   child   spl   idt   contex   ali   lan   text   

页面需要水印

import Vue from ‘vue‘
/**
 * watermark 指令
 * 解决: 给页面生成水印
 * 基本原理:给选择器添加背景图片
 * 用法:v-watermark="{options}"
 * option:
 * @param {string} text 水印文字
 * @param {string} width 宽度
 * @param {string} textColor 文字颜色
 */
Vue.directive(‘watermark‘, (el, binding) => {
  function addWaterMarker(str, parentNode, font, textColor) {
    var can = document.createElement(‘canvas‘)
    parentNode.appendChild(can)
    can.width = 400
    can.height = 200
    can.style.display = ‘none‘
    var cans = can.getContext(‘2d‘)
    cans.rotate(-20 * Math.PI / 180)
    cans.font = font || ‘16px Microsoft JhengHei‘
    cans.fillStyle = textColor || ‘rgba(180, 180, 180, 0.3)‘
    cans.textAlign = ‘center‘
    cans.textBaseline = ‘Middle‘
    cans.fillText(str, can.width / 3, can.height / 2)
    parentNode.style.backgroundImage = ‘url(‘ + can.toDataURL(‘image/png‘) + ‘)‘
  }
  addWaterMarker(binding.value.text, el, binding.value.font, binding.value.textColor)
})

使用(Vue组件)

<div
      class="body"
      id="pdf-container"
      v-watermark="{text:‘水印文字‘,font:‘46px Microsoft JhengHei‘,width:‘100%‘,textColor:‘rgba(180, 180, 180, 0.3)‘}"
    >

Vue 给页面加水印指令(directive)

标签:context   ase   child   spl   idt   contex   ali   lan   text   

原文地址:https://www.cnblogs.com/leslie1943/p/13358126.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!