diff --git a/laws-module-system/src/main/java/com/jero/modules/system/util/SysWaterMarkUtil.java b/laws-module-system/src/main/java/com/jero/modules/system/util/SysWaterMarkUtil.java index 72235ecb..c6a6bb05 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/util/SysWaterMarkUtil.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/util/SysWaterMarkUtil.java @@ -11,6 +11,7 @@ import org.apache.pdfbox.pdmodel.font.PDType0Font; import org.apache.pdfbox.pdmodel.graphics.state.PDExtendedGraphicsState; import org.apache.pdfbox.pdmodel.graphics.state.RenderingMode; import org.apache.pdfbox.util.Matrix; +import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.ClassPathResource; import org.springframework.stereotype.Component; @@ -31,6 +32,21 @@ import java.time.format.DateTimeFormatter; @Component public class SysWaterMarkUtil { + @Value("${watermark.font-size}") + private float fontSize; + + @Value("${watermark.color.r}") + private int r; + + @Value("${watermark.color.g}") + private int g; + + @Value("${watermark.color.b}") + private int b; + + @Value("${watermark.color.a}") + private int a; + public String getWaterMarkConfig() { LoginUser loginUser = UserUtils.getLoginUser(); if (loginUser == null) { @@ -46,8 +62,8 @@ public class SysWaterMarkUtil { // 设置水印字体、字体大小、颜色和透明度 ClassPathResource fontResource = new ClassPathResource("fonts/SourceHanSerif-VF.ttf"); PDType0Font font = PDType0Font.load(document, fontResource.getInputStream()); - float fontSize = 13.0f; - Color color = new Color(180, 180, 180, 1); + float fontSize = this.fontSize; + Color color = new Color(r, g, b, a); PDExtendedGraphicsState graphicsState = new PDExtendedGraphicsState(); graphicsState.setNonStrokingAlphaConstant(0.4f); graphicsState.setStrokingAlphaConstant(0.4f); diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/util/WaterMarkUtil.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/util/WaterMarkUtil.java index a9e78475..dea5e0fc 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/util/WaterMarkUtil.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/util/WaterMarkUtil.java @@ -1,7 +1,7 @@ package com.jero.modules.laws.enterprise.util; -import com.jero.modules.system.entity.SysUser; -import com.jero.modules.system.service.ISysUserService; +import com.jero.common.system.vo.LoginUser; +import com.jero.modules.system.util.UserUtils; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; @@ -10,15 +10,12 @@ import org.apache.pdfbox.pdmodel.font.PDType0Font; import org.apache.pdfbox.pdmodel.graphics.state.PDExtendedGraphicsState; import org.apache.pdfbox.pdmodel.graphics.state.RenderingMode; import org.apache.pdfbox.util.Matrix; +import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.ClassPathResource; import org.springframework.stereotype.Component; -import com.jero.modules.sys.utils.UserUtils; -import javax.annotation.Resource; import java.awt.*; import java.io.*; -import java.time.LocalDate; -import java.time.format.DateTimeFormatter; /** * 水印工具类 @@ -26,19 +23,28 @@ import java.time.format.DateTimeFormatter; */ @Component public class WaterMarkUtil { - - @Resource - private ISysUserService userEoService; + + @Value("${watermark.font-size}") + private float fontSize; + + @Value("${watermark.color.r}") + private int r; + + @Value("${watermark.color.g}") + private int g; + + @Value("${watermark.color.b}") + private int b; + + @Value("${watermark.color.a}") + private int a; public String getWaterMarkConfig() { - LocalDate currentDate = LocalDate.now(); - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd"); - String formattedDate = currentDate.format(formatter); - - SysUser user = userEoService.getById(UserUtils.getUserId()); - String userName = user.calcNameWorkNo(); - - return userName + " " + formattedDate; + LoginUser loginUser = UserUtils.getLoginUser(); + if (loginUser == null) { + return ""; + } + return loginUser.getUsername() + loginUser.getRealname(); } public synchronized InputStream addWatermarkToPdf(InputStream inputStream) throws IOException { @@ -48,8 +54,8 @@ public class WaterMarkUtil { // 设置水印字体、字体大小、颜色和透明度 ClassPathResource fontResource = new ClassPathResource("fonts/SourceHanSerif-VF.ttf"); PDType0Font font = PDType0Font.load(document, fontResource.getInputStream()); - float fontSize = 13.0f; - Color color = new Color(100, 100, 100, 0); + float fontSize = this.fontSize; + Color color = new Color(r, g, b, a); PDExtendedGraphicsState graphicsState = new PDExtendedGraphicsState(); graphicsState.setNonStrokingAlphaConstant(0.4f); graphicsState.setStrokingAlphaConstant(0.4f); @@ -88,5 +94,4 @@ public class WaterMarkUtil { // 将ByteArrayOutputStream转换为ByteArrayInputStream以供返回 return new ByteArrayInputStream(baos.toByteArray()); } - } diff --git a/laws-single-startup/src/main/resources/application-dev.yml b/laws-single-startup/src/main/resources/application-dev.yml index e3be421d..b20d5572 100644 --- a/laws-single-startup/src/main/resources/application-dev.yml +++ b/laws-single-startup/src/main/resources/application-dev.yml @@ -456,3 +456,12 @@ download: scope_dev: 51 # 办公域 scope_work: 52 + +# 水印配置项 +watermark: + font-size: 13.0 + color: + r: 180 + g: 180 + b: 180 + a: 1 \ No newline at end of file diff --git a/laws-single-startup/src/main/resources/application-prod.yml b/laws-single-startup/src/main/resources/application-prod.yml index 7c004c80..d81d777e 100644 --- a/laws-single-startup/src/main/resources/application-prod.yml +++ b/laws-single-startup/src/main/resources/application-prod.yml @@ -429,3 +429,12 @@ download: scope_dev: 51 # 办公域 scope_work: 52 + +# 水印配置项 +watermark: + font-size: 13.0 + color: + r: 180 + g: 180 + b: 180 + a: 1 \ No newline at end of file diff --git a/laws-single-startup/src/main/resources/application-test.yml b/laws-single-startup/src/main/resources/application-test.yml index a63dd125..f45e40b8 100644 --- a/laws-single-startup/src/main/resources/application-test.yml +++ b/laws-single-startup/src/main/resources/application-test.yml @@ -429,4 +429,13 @@ download: # 研发域 scope_dev: 51 # 办公域 - scope_work: 52 \ No newline at end of file + scope_work: 52 + +# 水印配置项 +watermark: + font-size: 13.0 + color: + r: 180 + g: 180 + b: 180 + a: 1 \ No newline at end of file