日常在工作实践中,可能会遇到添加水印的情况,如何在页面中添加水印呢?如下图的效果
实现思路可以利用Watermark实现添加水印的功能
Watermark通常是指嵌入在页面中的半透明图像或文字,用于标识页面所有权或版权信息。在若依Ruoyi-Vue中集成Watermark,可以采用以下思路:
- 选择合适的Watermark库:目前流行的Watermark库包括watermark-dom、html2canvas等。
- 在Vue组件中引入并使用Watermark库:根据项目需求,选择合适的Watermark库并将其引入Vue组件中。
- 配置Watermark参数:设置Watermark的文字内容、位置、大小、颜色等参数。
- 动态生成Watermark图像:利用Watermark库提供的功能,动态生成Watermark图像。
- 将Watermark图像添加到页面中:将生成的Watermark图像添加到页面DOM结构中,使其覆盖在页面内容之上。
实现步骤
引入Watermark库
首先,需要在项目中引入Watermark库。本文推荐使用watermark-dom库,该库使用简单,易于扩展。可以使用以下命令安装watermark-dom库:
npm install watermark-dom
或者在package.json文件dependencies节点增加watermark-dom依赖。
"watermark-dom": "2.3.0"
2. 配置Watermark参数
在Vue组件中,引入并配置watermark-dom库。例如,在App.vue组件中可以添加如下代码
watermark_id: 'wm_div_id', //水印总体的id
watermark_prefix: 'mask_div_id', //小水印的id前缀
watermark_txt:"测试水印", //水印的内容
watermark_x:20, //水印起始位置x轴坐标
watermark_y:20, //水印起始位置Y轴坐标
watermark_rows:0, //水印行数
watermark_cols:0, //水印列数
watermark_x_space:100, //水印x轴间隔
watermark_y_space:50, //水印y轴间隔
watermark_font:'微软雅黑', //水印字体
watermark_color:'black', //水印字体颜色
watermark_fontsize:'18px', //水印字体大小
watermark_alpha:0.15, //水印透明度,要求设置在大于等于0.005
watermark_width:100, //水印宽度
watermark_height:100, //水印长度
watermark_angle:15, //水印倾斜度数
watermark_parent_width:0, //水印的总体宽度(默认值:body的scrollWidth和clientWidth的较大值)
watermark_parent_height:0, //水印的总体高度(默认值:body的scrollHeight和clientHeight的较大值)
watermark_parent_node:null //水印插件挂载的父元素element,不输入则默认挂在body上
动态生成Watermark图像
在AppMain.vue文件引入水印模块,示例如下:如果想要在单一页面使用,也可以在自己想要的页面中添加
import watermark from "watermark-dom";
export default {
name: "AppMain",
mounted() {
// 加载水印
const username = this.$store.state.user.name;
watermark.load({ watermark_txt: username + "水印" });
},
computed: {
.....
}
};