一个开源、简单、易用的水印添加框架

程序员咋不秃头 2024-06-20 09:14:01

今天给大家介绍一个简单易用的水印添加框架,框架抽象了各个文件类型的对于水印添加的方法。仅使用几行代码即可为不同类型的文件添加相同样式的水印。

如果你有给PDF、图片添加水印的需求,EasyWatermark是一个很好的选择,主要功能就是传入一个文件,并设置本次要添加的水印,即可在文件中添加水印内容。

快速开始添加依赖<dependency> <groupId>org.easywatermark</groupId> <artifactId>easy-watermark</artifactId> <version>最新版本</version></dependency>添加水印byte[] result = EasyWatermark.create() .file(fileData) .text("Easy-Watermark") .execute();更多配置

预制水印类型

CUSTOM:自定义水印,使用框架抽象的统一方法,对传入文件的每个页面进行特殊处理(开发中)CENTER:居中,在页面的各个居中位置上添加。VERTICAL_CENTER:水印垂直居中LEFT_CENTER:靠左居中RIGHT_CENTER:靠右居中TOP_CENTER:顶部居中BOTTOM_CENTER:底部居中OVERSPREAD:页面铺满,可设置倾斜角度LOW:低铺满,水印内容占比33%NORMAL:一般铺满,水印内容占比66%HIGH:高铺满,水印内容占比90%DIAGONAL:页面对角水印TOP_TO_BOTTOM:文字从上到下BOTTOM_TO_TOP:文字从下到上

水印配置

对应WatermarkConfig类,该类会对水印的各项属性进行设置。

public WatermarkConfig { // 水印颜色 private Color color = Color.BLACK; // 忽略旋转,仍在开发 private boolean ignoreRotation = true; // 水印透明度 private float alpha = 1; // 铺满水印子类型 private OverspreadTypeEnum overspreadType = OverspreadTypeEnum.NORMAL; // 居中水印子类型 private CenterLocationTypeEnum centerLocationType = CenterLocationTypeEnum.VERTICAL_CENTER; // 对角水印子类型 private DiagonalDirectionTypeEnum diagonalDirectionType = DiagonalDirectionTypeEnum.TOP_TO_BOTTOM; /** * An angle, in degrees * The angle of clockwise rotation */ private float angle = 0;}

字体配置

对应FontConfig类,该类会对水印文字的各项属性进行设置。

public FontConfig { // 字体颜色 private Color color = Color.BLACK; // 字体文件 private File fontFile; /** * 默认的字体,目前仅在图片水印中生效 * Default font name is Dialog */ private String fontName = "Dialog"; // 字体大小 private int fontSize = 12; /** * 字体样式:加粗、斜体、正常 * @see Font#PLAIN * @see Font#BOLD * @see Font#ITALIC */ private int fontStyle = Font.PLAIN;}进阶用法

使用预设水印类型

byte[] result = EasyWatermark.create() .file(fileData) .text("Easy-Watermark") // 选择不同的水印类型 .easyWatermarkType(EasyWatermarkTypeEnum.CENTER) .execute();

自定义水印配置以及字体配置

WatermarkConfig watermarkConfig = new WatermarkConfig();// 设置水印透明度watermarkConfig.setAlpha(0.5f);FontConfig fontConfig = new FontConfig();// 设置水印文字大小fontConfig.setFontSize(30);byte[] result = EasyWatermark.create() .file(fileData) // 自定义配置 .config(watermarkConfig) .config(fontConfig) // 水印类型 .easyWatermarkType(EasyWatermarkTypeEnum.CENTER) .text("Easy-Watermark") .executor();展示效果

图片

pdf

开源地址

https://github.com/AzirZsk/easy-watermark

0 阅读:3

程序员咋不秃头

简介:感谢大家的关注