Merge remote-tracking branch 'origin/master'

This commit is contained in:
liyawei
2022-06-09 18:01:34 +08:00
5 changed files with 150 additions and 42 deletions
@@ -293,20 +293,17 @@ public class CommonController {
InputStream inputStream = null;
OutputStream outputStream = null;
try {
String fileName = "";
//本地下载
String filePath = ossFile.getUrl();
File file = new File(filePath);
if(!file.exists()){
if(!CosBootUtil.doesObjectExist(filePath)){
response.setStatus(404);
throw new RuntimeException("文件不存在..");
}
// 文件名称
fileName = file.getName();
inputStream = new BufferedInputStream(new FileInputStream(filePath));
response.setContentType("application/force-download");// 设置强制下载不打开
response.addHeader("Content-Disposition", "attachment;fileName=" + new String(file.getName().getBytes("UTF-8"),"iso-8859-1"));
inputStream = new BufferedInputStream(new FileInputStream(filePath));
inputStream = CosBootUtil.download(filePath);
outputStream = response.getOutputStream();
byte[] buf = new byte[1024];
int len;
@@ -481,24 +478,23 @@ public class CommonController {
}
InputStream inputStream = null;
OutputStream outputStream = null;
String fileName = "";
try {
String fileName = "";
//本地下载
String filePath = ossFile.getUrl();
File file = new File(filePath);
//水印内容
String waterContent = "water mark";//临时定义(水印信息通过传过来)
File newFile = PDFUtils.PDFWatermark(file,waterContent);
String path = newFile.getPath();
// String substring = path.substring(filePath.length(), path.length());
if(!file.exists()){
boolean b = CosBootUtil.doesObjectExist(filePath);
if (!b) {
response.setStatus(404);
throw new RuntimeException("文件不存在..");
}
InputStream download = CosBootUtil.download(filePath);
File file = new File(filePath);
//水印内容
String waterContent = "water mark";//临时定义(水印信息通过传过来)
File newFile = PDFUtils.PDFWatermark(download,uploadpath,file.getName(),waterContent);
// 文件名称
fileName = file.getName();
inputStream = new BufferedInputStream(new FileInputStream(path));
inputStream = new BufferedInputStream(new FileInputStream(newFile));
response.addHeader("Content-Disposition", "attachment;fileName=" + new String(fileName.getBytes("UTF-8"),"iso-8859-1"));
response.setContentType("application/force-download");// 设置强制下载不打开
outputStream = response.getOutputStream();
@@ -527,9 +523,78 @@ public class CommonController {
log.error(e.getMessage(), e);
}
}
File fileTemp = new File(uploadpath + File.separator +fileName);
fileTemp.delete();
}
}
// /**
// * 文件预览PDF
// *
// * @param id 传入文件id
// * @param request
// * @param response
// */
// @GetMapping(value = "/pdf/viewFile")
// public void viewFile(String id,HttpServletRequest request, HttpServletResponse response) {
// // 查询数据表数据是否存在
// LambdaQueryWrapper<OSSFile> queryWrapper = new LambdaQueryWrapper<>();
// queryWrapper.eq(OSSFile::getId,id);
// OSSFile ossFile = ossFileService.getOne(queryWrapper);
// if( null == ossFile){
// throw new JeroBootException("文件不存在..");
// }
// InputStream inputStream = null;
// OutputStream outputStream = null;
// try {
// String fileName = "";
// //本地下载
// String filePath = ossFile.getUrl();
// File file = new File(filePath);
// //水印内容
// String waterContent = "water mark";//临时定义(水印信息通过传过来)
// File newFile = PDFUtils.PDFWatermark(file,waterContent);
// String path = newFile.getPath();
//// String substring = path.substring(filePath.length(), path.length());
//
// if(!file.exists()){
// response.setStatus(404);
// throw new RuntimeException("文件不存在..");
// }
// // 文件名称
// fileName = file.getName();
// inputStream = new BufferedInputStream(new FileInputStream(path));
// response.addHeader("Content-Disposition", "attachment;fileName=" + new String(fileName.getBytes("UTF-8"),"iso-8859-1"));
// response.setContentType("application/force-download");// 设置强制下载不打开
// outputStream = response.getOutputStream();
// byte[] buf = new byte[1024];
// int len;
// while ((len = inputStream.read(buf)) > 0) {
// outputStream.write(buf, 0, len);
// }
// response.flushBuffer();
// } catch (IOException e) {
// log.error("文件下载失败" + e.getMessage());
// response.setStatus(404);
// e.printStackTrace();
// } finally {
// if (inputStream != null) {
// try {
// inputStream.close();
// } catch (IOException e) {
// log.error(e.getMessage(), e);
// }
// }
// if (outputStream != null) {
// try {
// outputStream.close();
// } catch (IOException e) {
// log.error(e.getMessage(), e);
// }
// }
// }
//
// }
/**
* @功能:pdf预览Iframe
@@ -1,10 +1,25 @@
package com.jero.modules.system.util;
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.PdfBrushes;
import com.spire.pdf.graphics.PdfFont;
import com.spire.pdf.graphics.PdfFontFamily;
import com.spire.pdf.graphics.PdfStringFormat;
import com.spire.pdf.graphics.PdfTextAlignment;
import com.spire.pdf.graphics.PdfTilingBrush;
import java.awt.*;
import java.awt.geom.*;
import java.io.*;
import java.awt.geom.Dimension2D;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class PDFUtils {
public static void main(String[] args) throws IOException {
@@ -69,43 +84,64 @@ public class PDFUtils {
page.getCanvas().drawRectangle(brush, loRect);
}
public static File PDFWatermark(File file,String waterMark) throws FileNotFoundException {
InputStream in = new FileInputStream(file) ;
// byte[] byteArray=File2byte(new File("f:ceshi/1.pdf"));
public static File PDFWatermark(InputStream in,String uploadpath, String fileName,String waterMark) throws FileNotFoundException {
//创建PdfDocument类的对象
PdfDocument pdf = new PdfDocument();
//加载测试文档
pdf.loadFromStream(in);
// pdf.loadFromFile(file.getPath());
//为了去掉在第一页多余的水印,加一页,后边删除
pdf.getPages().add();
//获取测试文档中的第一页
for(int i=0; i<pdf.getPages().getCount();i++){
PdfPageBase page = pdf.getPages().get(i);
//调用insertWatermark()方法添加文本水印
insertWatermark(page, waterMark);
}
// 删除加的第一页
pdf.getPages().remove(pdf.getPages().get(pdf.getPages().getCount()-1));
String newFilePath = file.getPath().replace(file.getName(),"transformation"+file.getName());
String path = uploadpath + File.separator +fileName;
String newFilePath = path.replace(fileName,"transformation"+fileName);
//保存文档
pdf.saveToFile(newFilePath);
// File newFile =
// File file2 = new File("f:ceshi/4.pdf");
// InputStream in1 = new FileInputStream(file1);
//
// OutputStream out2 = new FileOutputStream(file2);
// byte[] buffer = new byte[4096];
// int n = 0;
// while (-1 != (n = in1.read(buffer))) {
// out2.write(buffer, 0, n);
// }
// file1.delete();
return new File(newFilePath);
}
// public static File PDFWatermark(File file,String waterMark) throws FileNotFoundException {
// InputStream in = new FileInputStream(file) ;
//// byte[] byteArray=File2byte(new File("f:ceshi/1.pdf"));
// //创建PdfDocument类的对象
// PdfDocument pdf = new PdfDocument();
// //加载测试文档
// pdf.loadFromStream(in);
//// pdf.loadFromFile(file.getPath());
// //为了去掉在第一页多余的水印,加一页,后边删除
// pdf.getPages().add();
//
// //获取测试文档中的第一页
// for(int i=0; i<pdf.getPages().getCount();i++){
//
// PdfPageBase page = pdf.getPages().get(i);
// //调用insertWatermark()方法添加文本水印
// insertWatermark(page, waterMark);
// }
//// 删除加的第一页
//
// pdf.getPages().remove(pdf.getPages().get(pdf.getPages().getCount()-1));
// String newFilePath = file.getPath().replace(file.getName(),"transformation"+file.getName());
// //保存文档
// pdf.saveToFile(newFilePath);
//// File newFile =
//// File file2 = new File("f:ceshi/4.pdf");
//// InputStream in1 = new FileInputStream(file1);
////
//// OutputStream out2 = new FileOutputStream(file2);
//// byte[] buffer = new byte[4096];
//// int n = 0;
//// while (-1 != (n = in1.read(buffer))) {
//// out2.write(buffer, 0, n);
//// }
//// file1.delete();
// return new File(newFilePath);
// }
public static File PDFWatermark(String newFilePath,InputStream in,String waterMark) throws FileNotFoundException {
// InputStream in = new FileInputStream(file) ;
// byte[] byteArray=File2byte(new File("f:ceshi/1.pdf"));
+2
View File
@@ -25,6 +25,8 @@ router.beforeEach((to, from, next) => {
Vue.ls.set(USER_NAME, res.result.userInfo.username, 7 * 24 * 60 * 60 * 1000)
Vue.ls.set(USER_INFO, res.result.userInfo, 7 * 24 * 60 * 60 * 1000)
Vue.ls.set(UI_CACHE_DB_DICT_DATA, res.result.sysAllDictItems, 7 * 24 * 60 * 60 * 1000)
Vue.ls.set('domianWebSocketURL', res.result.domianWebSocketURL)
Vue.ls.set('onlinePreviewDomainURL', res.result.onlinePreviewDomainURL)
store.commit('SET_TOKEN', res.result.token)
store.commit('SET_INFO', res.result.userInfo)
store.commit('SET_NAME', {
@@ -36,13 +36,13 @@
<!-- 属性名称-->
<a-col :span="24">
<a-form-model-item :label="$t('AttributeName')" prop="dbFieldTxt">
<a-input v-model.trim="form.dbFieldTxt" :placeholder="$t('PleaseEnterPropertyName')" :maxLength="120" ></a-input>
<a-input v-model="form.dbFieldTxt" :placeholder="$t('PleaseEnterPropertyName')" :maxLength="120" ></a-input>
</a-form-model-item>
</a-col>
<!-- 英文名称-->
<a-col :span="24">
<a-form-model-item :label="$t('enName')" prop="dbFieldEnName">
<a-input v-model.trim="form.dbFieldEnName" :placeholder="$t('PleaseEnterYourEnglishName')" :maxLength="120" ></a-input>
<a-input v-model="form.dbFieldEnName" :placeholder="$t('PleaseEnterYourEnglishName')" :maxLength="120" ></a-input>
</a-form-model-item>
</a-col>
<!-- 属性类型-->
@@ -414,6 +414,9 @@ export default {
submitForm () {
// const that = this;
// 触发表单验证
this.form.dbFieldTxt = this.form.dbFieldTxt.trim()
this.form.dbFieldEnName = this.form.dbFieldEnName.trim()
this.form.dbFieldTxt = this.form.dbFieldTxt.trim()
// console.log(this.$refs.tagform)
this.$refs.tagEditForm.validate((valid)=>{
// console.log('valid',valid)
@@ -44,7 +44,7 @@
>
<a-form-model-item ref="tagName" :label="$t('LabeItemName')" prop="dictName" class="tag-item">
<a-input
v-model.trim="form.dictName"
v-model="form.dictName"
:placeholder="$t('PleaseEnterLabelName')"
/>
</a-form-model-item>
@@ -57,7 +57,7 @@
</a-form-model-item>
<a-form-model-item ref="describe" :label="$t('describe')" prop="description" class="tag-item">
<a-input
v-model.trim="form.description"
v-model="form.description"
:placeholder="$t('PleaseEnterDescription')"
/>
</a-form-model-item>
@@ -247,6 +247,8 @@
this.form = {}
},
hideModal() {
this.form.dictName = this.form.dictName.trim()
this.form.description = this.form.description.trim()
let params = {
...this.form
}