fix pdf加水印前先解密
This commit is contained in:
+18
-3
@@ -4,6 +4,7 @@ import cn.hutool.core.io.FileUtil;
|
|||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.jero.common.exception.JeroBootException;
|
import com.jero.common.exception.JeroBootException;
|
||||||
|
import com.jero.common.util.IntekeyUtils;
|
||||||
import com.jero.common.util.MinioUtil;
|
import com.jero.common.util.MinioUtil;
|
||||||
import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthUserService;
|
import com.jero.modules.laws.enterprise.service.EnterpriseStandardAuthUserService;
|
||||||
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
|
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
|
||||||
@@ -13,15 +14,19 @@ import com.jero.modules.oss.service.IOSSFileService;
|
|||||||
import com.jero.modules.system.util.SysWaterMarkUtil;
|
import com.jero.modules.system.util.SysWaterMarkUtil;
|
||||||
import com.jero.modules.system.util.UserUtils;
|
import com.jero.modules.system.util.UserUtils;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.http.entity.ContentType;
|
||||||
import org.springframework.core.io.ClassPathResource;
|
import org.springframework.core.io.ClassPathResource;
|
||||||
|
import org.springframework.mock.web.MockMultipartFile;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
@@ -143,14 +148,16 @@ public class SysCommonController {
|
|||||||
// 设置强制下载不打开
|
// 设置强制下载不打开
|
||||||
response.setContentType("application/force-download");
|
response.setContentType("application/force-download");
|
||||||
// 然后在您的controller方法中:
|
// 然后在您的controller方法中:
|
||||||
|
InputStream watermarkedInputStream = null;
|
||||||
if ("pdf".equalsIgnoreCase(FileUtil.extName(fileName))) {
|
if ("pdf".equalsIgnoreCase(FileUtil.extName(fileName))) {
|
||||||
try (InputStream originalInputStream = MinioUtil.getMinioFile(MinioUtil.getBucketName(), url);
|
try (InputStream originalInputStream = MinioUtil.getMinioFile(MinioUtil.getBucketName(), url);
|
||||||
InputStream watermarkedInputStream = sysWaterMarkUtil.addWatermarkToPdf(originalInputStream);
|
|
||||||
OutputStream outputStream = response.getOutputStream()) {
|
OutputStream outputStream = response.getOutputStream()) {
|
||||||
|
|
||||||
if (originalInputStream == null) {
|
if (originalInputStream == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
MultipartFile mFile = new MockMultipartFile(fileName, fileName, ContentType.APPLICATION_OCTET_STREAM.toString(), originalInputStream);
|
||||||
|
InputStream inputStream = IntekeyUtils.getInputStreamByDecryptFile(mFile);
|
||||||
|
watermarkedInputStream = sysWaterMarkUtil.addWatermarkToPdf(inputStream);
|
||||||
|
|
||||||
byte[] buf = new byte[1024];
|
byte[] buf = new byte[1024];
|
||||||
int len;
|
int len;
|
||||||
@@ -160,8 +167,16 @@ public class SysCommonController {
|
|||||||
response.flushBuffer();
|
response.flushBuffer();
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage());
|
log.error("error:",e);
|
||||||
response.setStatus(404);
|
response.setStatus(404);
|
||||||
|
}finally {
|
||||||
|
try {
|
||||||
|
if (watermarkedInputStream != null){
|
||||||
|
watermarkedInputStream.close();
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
try (InputStream inputStream = MinioUtil.getMinioFile(MinioUtil.getBucketName(), url);
|
try (InputStream inputStream = MinioUtil.getMinioFile(MinioUtil.getBucketName(), url);
|
||||||
|
|||||||
Reference in New Issue
Block a user