update 下载pdf增加水印
This commit is contained in:
+2
-3
@@ -24,7 +24,6 @@ import org.springframework.http.HttpMethod;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.http.server.ServletServerHttpRequest;
|
||||
import org.springframework.util.AntPathMatcher;
|
||||
import org.springframework.util.FileCopyUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||
@@ -233,7 +232,7 @@ public class CommonController {
|
||||
}
|
||||
//pdf加水印
|
||||
if ("pdf".equalsIgnoreCase(FileUtil.extName(fileName))) {
|
||||
inputStream = sysWaterMarkUtil.addWatermarkToPdf(inputStream);
|
||||
inputStream = sysWaterMarkUtil.addWatermarkToPdf(inputStream,request);
|
||||
}
|
||||
response.addHeader("Content-Disposition", "attachment;fileName=" + new String(fileName.getBytes("UTF-8"),"iso-8859-1"));
|
||||
response.setContentType("application/force-download");// 设置强制下载不打开
|
||||
@@ -411,7 +410,7 @@ public class CommonController {
|
||||
}
|
||||
//pdf加水印
|
||||
if ("pdf".equalsIgnoreCase(FileUtil.extName(fileName))) {
|
||||
inputStream = sysWaterMarkUtil.addWatermarkToPdf(inputStream);
|
||||
inputStream = sysWaterMarkUtil.addWatermarkToPdf(inputStream, request);
|
||||
}
|
||||
ossFileService.updateById(ossFile);
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
|
||||
+18
-7
@@ -1,8 +1,12 @@
|
||||
package com.jero.modules.system.util;
|
||||
|
||||
import com.jero.common.constant.CommonConstant;
|
||||
import com.jero.common.system.api.ISysBaseAPI;
|
||||
import com.jero.common.system.util.JwtUtil;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.common.util.DateUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.pdfbox.pdmodel.PDDocument;
|
||||
import org.apache.pdfbox.pdmodel.PDPage;
|
||||
import org.apache.pdfbox.pdmodel.PDPageContentStream;
|
||||
@@ -11,11 +15,13 @@ 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.apache.shiro.SecurityUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.awt.*;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
@@ -66,11 +72,16 @@ public class SysWaterMarkUtil {
|
||||
private float marginTop;
|
||||
@Value("${watermark.dateFormat}")
|
||||
private String dateFormat;
|
||||
@Resource
|
||||
private ISysBaseAPI sysBaseAPI;
|
||||
|
||||
|
||||
public List<String> getWaterMarkConfig() {
|
||||
LoginUser loginUser = UserUtils.getLoginUser();
|
||||
|
||||
public List<String> getWaterMarkConfig(HttpServletRequest request) {
|
||||
String token = request.getHeader(CommonConstant.X_ACCESS_TOKEN);
|
||||
LoginUser loginUser = null;
|
||||
if (StringUtils.isNotBlank(token)){
|
||||
String username = JwtUtil.getUsername(token);
|
||||
loginUser = sysBaseAPI.getUserByName(username);
|
||||
}
|
||||
Date curDate = new Date();
|
||||
String cudDateStr = DateUtils.date2Str(curDate, new SimpleDateFormat(dateFormat));
|
||||
List<String> result = new ArrayList<>();
|
||||
@@ -84,8 +95,8 @@ public class SysWaterMarkUtil {
|
||||
return result;
|
||||
}
|
||||
|
||||
public synchronized InputStream addWatermarkToPdf(InputStream inputStream) throws IOException {
|
||||
List<String> watermarkText = getWaterMarkConfig();
|
||||
public synchronized InputStream addWatermarkToPdf(InputStream inputStream, HttpServletRequest request) throws IOException {
|
||||
List<String> watermarkText = getWaterMarkConfig(request);
|
||||
PDDocument document = PDDocument.load(inputStream);
|
||||
document.setAllSecurityToBeRemoved(true);
|
||||
// 加载水印字体
|
||||
|
||||
Reference in New Issue
Block a user