From f609e3ceceda060e1c88f49c0aa9f0c0b1630488 Mon Sep 17 00:00:00 2001 From: "zhaokaiyao@91isoft.com" <6922339zky> Date: Sun, 25 Jul 2021 18:22:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=81=A2=E5=A4=8D=E4=B8=8B=E8=BD=BD=E6=97=B6?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B0=B4=E5=8D=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adc-da-base/pom.xml | 6 ++++ .../java/com/adc/da/util/WaterMarkUtil.java | 13 +++++-- adc-da-sys/pom.xml | 22 ++++++++++++ .../att/controller/AttFileEOController.java | 34 +++++++++++-------- .../main/java/com/adc/da/att/dao/UserDao.java | 8 +++++ .../java/com/adc/da/att/entity/TsUser.java | 24 +++++++++++++ 6 files changed, 90 insertions(+), 17 deletions(-) create mode 100644 adc-da-sys/src/main/java/com/adc/da/att/dao/UserDao.java create mode 100644 adc-da-sys/src/main/java/com/adc/da/att/entity/TsUser.java diff --git a/adc-da-base/pom.xml b/adc-da-base/pom.xml index cbf24270..538935fe 100644 --- a/adc-da-base/pom.xml +++ b/adc-da-base/pom.xml @@ -37,6 +37,12 @@ UserAgentUtils 1.21 + + com.itextpdf + itextpdf + 5.5.13 + compile + diff --git a/adc-da-base/src/main/java/com/adc/da/util/WaterMarkUtil.java b/adc-da-base/src/main/java/com/adc/da/util/WaterMarkUtil.java index 304e9f35..d33481f1 100644 --- a/adc-da-base/src/main/java/com/adc/da/util/WaterMarkUtil.java +++ b/adc-da-base/src/main/java/com/adc/da/util/WaterMarkUtil.java @@ -1,5 +1,13 @@ package com.adc.da.util; +import com.itextpdf.text.BaseColor; +import com.itextpdf.text.Element; +import com.itextpdf.text.Rectangle; +import com.itextpdf.text.pdf.*; + +import java.io.FileOutputStream; +import java.lang.reflect.Field; + /** * @Description:水印 * @Author: super_liu @@ -15,7 +23,7 @@ public class WaterMarkUtil { */ public static boolean waterMark(String inputFile, String outputFile, String waterMarkName) { -/* try { + try { PdfReader reader = new PdfReader(inputFile); Field f = PdfReader.class.getDeclaredField("encrypted"); f.setAccessible(true); @@ -65,8 +73,7 @@ public class WaterMarkUtil { } catch (Exception e) { e.printStackTrace(); return false; - }*/ -return false; + } } } diff --git a/adc-da-sys/pom.xml b/adc-da-sys/pom.xml index 67891c56..94a80bcc 100644 --- a/adc-da-sys/pom.xml +++ b/adc-da-sys/pom.xml @@ -77,6 +77,28 @@ dom4j 2.0.1 + + + + com.lowagie + itext + 2.1.7 + + + com.lowagie + itextasian + 2.1.7 + + + com.itextpdf + itextpdf + 5.5.9 + + + com.itextpdf + itext-asian + 5.2.0 + diff --git a/adc-da-sys/src/main/java/com/adc/da/att/controller/AttFileEOController.java b/adc-da-sys/src/main/java/com/adc/da/att/controller/AttFileEOController.java index 456e39c7..4df99038 100644 --- a/adc-da-sys/src/main/java/com/adc/da/att/controller/AttFileEOController.java +++ b/adc-da-sys/src/main/java/com/adc/da/att/controller/AttFileEOController.java @@ -1,13 +1,17 @@ package com.adc.da.att.controller; +import com.adc.da.att.dao.UserDao; import com.adc.da.att.entity.AttFileEO; +import com.adc.da.att.entity.TsUser; import com.adc.da.att.service.IAttFileEOService; import com.adc.da.att.vo.AttFileVo; import com.adc.da.file.store.IFileStore; import com.adc.da.http.ResponseMessage; import com.adc.da.http.Result; +import com.adc.da.sys.entity.UserEO; import com.adc.da.util.MD5Util; import com.adc.da.util.UUIDUtils; +import com.adc.da.util.WaterMarkUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @@ -46,6 +50,9 @@ public class AttFileEOController { @Autowired private IFileStore iFileStore; + @Autowired + private UserDao userDao; + @Value("${file.path}") private String filePath;//文件存储路径 @@ -249,7 +256,7 @@ public class AttFileEOController { @ApiOperation(value = "|File|下载文件加水印") @GetMapping("/downloadFileForSarWaterMark") // @RequiresPermissions("sys:file:downloadFileForSar") - public void downloadFileForSarWaterMark(String fileId, HttpServletResponse response, HttpServletRequest request) throws Exception { + public void downloadFileForSarWaterMark(String userId,String fileId, HttpServletResponse response, HttpServletRequest request) throws Exception { AttFileEO attFileEO = attFileEOService.getFileInfo(fileId); InputStream is = null; OutputStream os = null; @@ -265,24 +272,23 @@ public class AttFileEOController { } String waterFilePath = newFilePath + attFileEO.getOldFileName(); // 添加水印 - String waterContent = ""; -// String userId = LoginUserUtil.getUserId(); -// String userMsg = ""; -// UserEO userEO = userEOService.selectByPrimaryKey(userId); -// if (userEO != null) { -// userMsg = userEO.getUname() + ","; -// if (StringUtils.isNotEmpty(userEO.getWorkNum())) { -// userMsg += userEO.getWorkNum() + ","; -// } -// } + String userMsg = ""; + TsUser tsUser = userDao.selectById(userId); + if (tsUser != null) { + userMsg = tsUser.getUname() + ","; + if (StringUtils.isNotEmpty(tsUser.getWorkNum())) { + userMsg += tsUser.getWorkNum() + ","; + } + } SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");//设置日期格式 String date = df.format(new Date()); -// waterContent = userMsg + date; + String waterContent = userMsg + date; //2020年9月5日 去掉水印处理 -// WaterMarkUtil.waterMark(oldFilePath,waterFilePath,waterContent); + //2021年7月25日要求下载生成水印 + WaterMarkUtil.waterMark(oldFilePath,waterFilePath,waterContent); response.setHeader("Content-Disposition", "attachment;filename=\""+fileOldName+"\""); response.setContentType("application/octet-stream"); - File file = new File(filePath+attFileEO.getFilePath()+attFileEO.getFileName()); + File file = new File(waterFilePath); is = new FileInputStream(file); os = response.getOutputStream(); IOUtils.copy(is, os); diff --git a/adc-da-sys/src/main/java/com/adc/da/att/dao/UserDao.java b/adc-da-sys/src/main/java/com/adc/da/att/dao/UserDao.java new file mode 100644 index 00000000..b7f6d6df --- /dev/null +++ b/adc-da-sys/src/main/java/com/adc/da/att/dao/UserDao.java @@ -0,0 +1,8 @@ +package com.adc.da.att.dao; + +import com.adc.da.att.entity.TsUser; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +public interface UserDao extends BaseMapper { + +} diff --git a/adc-da-sys/src/main/java/com/adc/da/att/entity/TsUser.java b/adc-da-sys/src/main/java/com/adc/da/att/entity/TsUser.java new file mode 100644 index 00000000..c088351b --- /dev/null +++ b/adc-da-sys/src/main/java/com/adc/da/att/entity/TsUser.java @@ -0,0 +1,24 @@ +package com.adc.da.att.entity; + +import com.adc.da.base.entity.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class TsUser extends BaseEntity implements Serializable { + @TableId + private String usid; + @TableField + private String uname; + @TableField + private String workNum; + + +}