Browse Source

fix:模版修改

master
wang 2 months ago
parent
commit
b90122176a
  1. 11
      yun-admin/src/main/java/net/lab1024/sa/admin/module/word/WordApplicationsController.java
  2. 24
      yun-admin/src/main/java/net/lab1024/sa/admin/module/word/WordCertificateService.java
  3. BIN
      yun-admin/src/main/resources/templates/certificate_template.docx

11
yun-admin/src/main/java/net/lab1024/sa/admin/module/word/WordApplicationsController.java

@ -65,18 +65,13 @@ public class WordApplicationsController {
byte[] fileContent;
String fileName;
String contentType;
if ("pdf".equalsIgnoreCase(format)) {
// 生成PDF文档
fileContent = wordCertificateService.generateCertificateAsPdf(certificateData);
fileName = "certificate.pdf";
contentType = "application/pdf";
} else {
// 生成Word文档
fileContent = wordCertificateService.generateCertificate(certificateData);
fileName = "certificate.docx";
contentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
}
// 设置文档响应头
response.setContentType(contentType);

24
yun-admin/src/main/java/net/lab1024/sa/admin/module/word/WordCertificateService.java

@ -5,14 +5,13 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.util.Units;
import org.apache.poi.xwpf.converter.pdf.PdfConverter;
import org.apache.poi.xwpf.converter.pdf.PdfOptions;
import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.*;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTDrawing;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STDocProtect;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.util.FileCopyUtils;
@ -45,7 +44,8 @@ public class WordCertificateService {
*/
public byte[] generateCertificate(CertificateData data) throws Exception {
XWPFDocument document = prepareDocument(data);
// 方法1:设置文档为只读推荐
document.enforceReadonlyProtection();
// 保存到字节数组
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
document.write(outputStream);
@ -54,20 +54,6 @@ public class WordCertificateService {
return outputStream.toByteArray();
}
/**
* 生成PDF格式的证书
*/
public byte[] generateCertificateAsPdf(CertificateData data) throws Exception {
XWPFDocument document = prepareDocument(data);
// 转换为PDF
ByteArrayOutputStream pdfOutputStream = new ByteArrayOutputStream();
PdfConverter.getInstance().convert(document, pdfOutputStream, PdfOptions.create());
document.close();
return pdfOutputStream.toByteArray();
}
/**
* 准备文档用于Word或PDF生成
*/
@ -118,8 +104,8 @@ public class WordCertificateService {
// 添加新内容
XWPFRun run = paragraph.createRun();
run.setText(text);
run.setFontFamily("宋体");
run.setFontSize(12);
run.setFontFamily("FangSong_GB2312");
run.setFontSize(16);
}
}
}

BIN
yun-admin/src/main/resources/templates/certificate_template.docx

Binary file not shown.
Loading…
Cancel
Save