fix: PDF水印文字

This commit is contained in:
2024-01-02 09:39:59 +08:00
parent 20075cb3a8
commit b77af10c65
@@ -1,5 +1,6 @@
package com.jero.modules.system.util;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import org.apache.pdfbox.pdmodel.PDDocument;
@@ -24,23 +25,18 @@ import java.time.format.DateTimeFormatter;
/**
* 水印工具类
*
* @author CaiHaohan
*/
@Component
public class SysWaterMarkUtil {
@Resource
private ISysUserService userEoService;
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 {
@@ -51,7 +47,7 @@ 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(100, 100, 100, 0);
Color color = new Color(180, 180, 180, 1);
PDExtendedGraphicsState graphicsState = new PDExtendedGraphicsState();
graphicsState.setNonStrokingAlphaConstant(0.4f);
graphicsState.setStrokingAlphaConstant(0.4f);