update 会员信息表-下载会员批复文件pdf

This commit is contained in:
lijiarao
2024-03-25 11:26:34 +08:00
parent 04623a5782
commit f42b8784f5
2 changed files with 41 additions and 25 deletions
@@ -268,7 +268,9 @@ public class approvalDocumentNumberController extends JeroController<ApprovalDoc
outputStream = response.getOutputStream();
outputStream.write(bos.toByteArray());
} catch (Exception e) {
} catch (JeroBootException e) {
throw new JeroBootException(e.getMessage());
}catch (Exception e) {
log.error("报错:",e);
} finally {
if (bos != null) {
@@ -1,13 +1,17 @@
package com.jero.approvalDocumentNumber.service;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.AcroFields;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
import com.jero.approvalDocumentNumber.entity.ApprovalDocumentNumber;
import com.jero.approvalDocumentNumber.mapper.ApprovalDocumentNumberMapper;
import com.jero.common.exception.JeroBootException;
import com.jero.standards.memberinfo.entity.MemberInfo;
import com.jero.standards.memberinfo.mapper.MemberInfoMapper;
import org.springframework.beans.factory.annotation.Value;
@@ -15,7 +19,9 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.net.URL;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
/**
@@ -53,7 +59,13 @@ public class ApprovalDocumentNumberService extends ServiceImpl<ApprovalDocumentN
}
}
public void downloadApprovalPdf(String companyName, String year,
String effectiveDate, PdfStamper pdfStamper, ByteArrayOutputStream bos) throws Exception {
String effectiveDate, PdfStamper pdfStamper, ByteArrayOutputStream bos) {
LambdaQueryWrapper<ApprovalDocumentNumber> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ApprovalDocumentNumber::getDateYear,year);
ApprovalDocumentNumber approval = approvalMapper.selectOne(wrapper);
if (approval == null){
throw new JeroBootException(year+"年批复文号为空");
}
ClassLoader classLoader = ApprovalDocumentNumberService.class.getClassLoader();
String fontPath = classLoader.getResource("template/simfang.ttf").getPath();
if (fontPath.startsWith("/")){
@@ -64,31 +76,33 @@ public class ApprovalDocumentNumberService extends ServiceImpl<ApprovalDocumentN
templatePath = templatePath.substring(1);
}
/* 使用中文字体 */
BaseFont baseFont = BaseFont.createFont(fontPath, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
BaseFont baseFont = null;
try {
baseFont = BaseFont.createFont(fontPath, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
//模板路径
if (templatePath == null) {
log.error("会员批复文件pdf模板为空");
return;
}
PdfReader pdfReader = new PdfReader(templatePath);
//模板路径
if (templatePath == null) {
log.error("会员批复文件pdf模板为空");
return;
pdfStamper = new PdfStamper(pdfReader, bos);
AcroFields form = pdfStamper.getAcroFields();
form.addSubstitutionFont(baseFont);
form.setField("companyName", companyName + "");
form.setField("dateYear", year);
form.setField("approvalDocumentNumber", approval.getApprovalDocumentNumber());
String date = DateUtil.parseDate(effectiveDate).toString(DatePattern.CHINESE_DATE_PATTERN);
form.setField("createTime", date);
//设置不可编辑
pdfStamper.setFormFlattening(true);
pdfStamper.close();
pdfReader.close();
} catch (DocumentException | IOException e) {
e.printStackTrace();
}
PdfReader pdfReader = new PdfReader(templatePath);
pdfStamper = new PdfStamper(pdfReader, bos);
AcroFields form = pdfStamper.getAcroFields();
form.addSubstitutionFont(baseFont);
LambdaQueryWrapper<ApprovalDocumentNumber> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ApprovalDocumentNumber::getDateYear,year);
ApprovalDocumentNumber approval = approvalMapper.selectOne(wrapper);
form.setField("companyName", companyName + "");
form.setField("dateYear", year);
form.setField("approvalDocumentNumber", approval.getApprovalDocumentNumber());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
form.setField("createTime", effectiveDate);
//设置不可编辑
pdfStamper.setFormFlattening(true);
pdfStamper.close();
pdfReader.close();
}
}