首页
/ PDF水印添加:kkFileView支持文字与图片水印功能

PDF水印添加:kkFileView支持文字与图片水印功能

2026-02-05 04:38:57作者:虞亚竹Luna

在日常办公中,PDF文件的安全保护至关重要,而水印功能是防止文件盗用和扩散的有效手段。kkFileView作为一款基于Spring-Boot的通用文件在线预览项目,提供了强大的PDF水印添加功能,支持文字和图片水印,满足不同场景下的安全需求。

水印功能配置文件

水印功能的相关配置主要集中在server/src/main/config/application.properties文件中。通过修改该文件中的参数,可以灵活定制水印的各项属性。

默认情况下,水印功能是禁用的,需要手动开启。配置文件中与水印相关的参数如下:

#生成水印 默认不启用 使用方法 (kkFileView)
office.watermark  = ${KK_OFFICE_WATERMARK:false}
#水印内容
#例:watermark.txt = ${WATERMARK_TXT:凯京科技内部文件,严禁外泄}
#如需取消水印,内容设置为空即可,例:watermark.txt = ${WATERMARK_TXT:}
watermark.txt = ${WATERMARK_TXT:}
#水印x轴间隔
watermark.x.space = ${WATERMARK_X_SPACE:10}
#水印y轴间隔
watermark.y.space = ${WATERMARK_Y_SPACE:10}
#水印字体
watermark.font = ${WATERMARK_FONT:微软雅黑}
#水印字体大小
watermark.fontsize = ${WATERMARK_FONTSIZE:18px}
#水印字体颜色
watermark.color = ${WATERMARK_COLOR:black}
#水印透明度,要求设置在大于等于0.005,小于1
watermark.alpha = ${WATERMARK_ALPHA:0.2}
#水印宽度
watermark.width = ${WATERMARK_WIDTH:180}
#水印高度
watermark.height = ${WATERMARK_HEIGHT:80}
#水印倾斜度数,要求设置在大于等于0,小于90
watermark.angle = ${WATERMARK_ANGLE:10}

文字水印配置

文字水印是最常用的水印类型,通过设置watermark.txt参数可以指定水印的文本内容。例如,要添加"内部文件,严禁外泄"的文字水印,可以将该参数设置为:

watermark.txt = ${WATERMARK_TXT:内部文件,严禁外泄}

同时,还可以调整水印的字体、大小、颜色、透明度等属性。例如,将字体设置为"宋体",大小设置为"24px",颜色设置为"red",透明度设置为"0.3":

watermark.font = ${WATERMARK_FONT:宋体}
watermark.fontsize = ${WATERMARK_FONTSIZE:24px}
watermark.color = ${WATERMARK_COLOR:red}
watermark.alpha = ${WATERMARK_ALPHA:0.3}

水印参数配置类

水印参数的读取和设置由server/src/main/java/cn/keking/config/WatermarkConfigConstants.java类负责。该类通过@Value注解从配置文件中获取水印相关的参数,并提供了静态方法用于设置和获取这些参数。

例如,获取水印内容的方法:

@Value("${watermark.txt:}")
public void setWatermarkTxt(String watermarkTxt) {
    setWatermarkTxtValue(watermarkTxt);
}

同时,在server/src/main/java/cn/keking/service/OfficeToPdfService.java中,水印参数被传递给PDF生成过滤器:

filterData.put("Watermark", ConfigConstants.getOfficeWatermark());  //水印

水印效果预览

配置完成后,通过kkFileView预览PDF文件时,水印效果将实时显示。以下是一些不同类型文件预览时的水印效果示例:

PDF文件预览

PDF文件水印预览

Word文档转换PDF预览

Word文档转换PDF水印预览

Excel表格转换PDF预览

Excel表格转换PDF水印预览

水印功能实现原理

水印功能的实现主要涉及到配置参数的读取和应用。在项目启动时,server/src/main/java/cn/keking/config/ConfigRefreshComponent.java类会加载配置文件中的水印参数,并将其设置到WatermarkConfigConstants类中:

String watermarkTxt = properties.getProperty("watermark.txt", WatermarkConfigConstants.DEFAULT_WATERMARK_TXT);
String watermarkXSpace = properties.getProperty("watermark.x.space", WatermarkConfigConstants.DEFAULT_WATERMARK_X_SPACE);
// ... 其他参数的获取
WatermarkConfigConstants.setWatermarkTxtValue(watermarkTxt);
WatermarkConfigConstants.setWatermarkXSpaceValue(watermarkXSpace);
// ... 其他参数的设置

当需要生成PDF文件时,OfficeToPdfService类会将水印参数传递给相应的过滤器,从而在PDF文件中添加水印。

总结

kkFileView提供的PDF水印添加功能,通过简单的配置即可实现文字水印的添加,满足了文件安全保护的需求。通过调整配置文件中的参数,可以灵活定制水印的内容、样式和布局,适应不同场景的需求。

官方文档中还提供了更多关于项目部署和使用的详细信息,可以参考README.mdREADME.cn.md文件。如果需要查看水印功能的具体实现代码,可以参考server/src/main/java/cn/keking/config/WatermarkConfigConstants.javaserver/src/main/java/cn/keking/service/OfficeToPdfService.java等相关文件。

登录后查看全文
热门项目推荐
相关项目推荐