From 54779605f1c6f6a63ee555b5487a18aee596a7bc Mon Sep 17 00:00:00 2001 From: AprilWind <2100166581@qq.com> Date: Fri, 27 Dec 2024 11:08:58 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E6=93=8D=E4=BD=9CItext=E5=90=91pdf?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E4=B8=AD=E5=A1=AB=E5=85=85=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 14 +++ ruoyi-common/pom.xml | 1 + ruoyi-common/ruoyi-common-bom/pom.xml | 6 ++ ruoyi-common/ruoyi-common-pdf/pom.xml | 41 +++++++ .../dromara/common/pdf/domain/PdfEntity.java | 27 +++++ .../dromara/common/pdf/utils/PdfUtils.java | 102 ++++++++++++++++++ .../resources/templates/sample_template.pdf | Bin 0 -> 93380 bytes ruoyi-modules/ruoyi-system/pom.xml | 5 + .../system/AhhrfsPdfController.java | 90 ++++++++++++++++ .../system/domain/vo/AhhrfsPdfSampleVo.java | 36 +++++++ 10 files changed, 322 insertions(+) create mode 100644 ruoyi-common/ruoyi-common-pdf/pom.xml create mode 100644 ruoyi-common/ruoyi-common-pdf/src/main/java/org/dromara/common/pdf/domain/PdfEntity.java create mode 100644 ruoyi-common/ruoyi-common-pdf/src/main/java/org/dromara/common/pdf/utils/PdfUtils.java create mode 100644 ruoyi-common/ruoyi-common-pdf/src/main/resources/templates/sample_template.pdf create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/AhhrfsPdfController.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/AhhrfsPdfSampleVo.java diff --git a/pom.xml b/pom.xml index 8186079bc..d2aa35e76 100644 --- a/pom.xml +++ b/pom.xml @@ -52,6 +52,9 @@ 7.0.1 + 5.5.13.4 + 5.2.0 + 3.2.2 3.2.2 @@ -328,6 +331,17 @@ ${fastjson.version} + + com.itextpdf + itext-asian + ${itextpdf.asian.version} + + + com.itextpdf + itextpdf + ${itextpdf.version} + + org.dromara ruoyi-system diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index 2930fd0b0..5b855aaf2 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -34,6 +34,7 @@ ruoyi-common-tenant ruoyi-common-websocket ruoyi-common-sse + ruoyi-common-pdf ruoyi-common diff --git a/ruoyi-common/ruoyi-common-bom/pom.xml b/ruoyi-common/ruoyi-common-bom/pom.xml index dbc5f1c2b..e19b53761 100644 --- a/ruoyi-common/ruoyi-common-bom/pom.xml +++ b/ruoyi-common/ruoyi-common-bom/pom.xml @@ -82,6 +82,12 @@ ${revision} + + org.dromara + ruoyi-common-pdf + ${revision} + + org.dromara diff --git a/ruoyi-common/ruoyi-common-pdf/pom.xml b/ruoyi-common/ruoyi-common-pdf/pom.xml new file mode 100644 index 000000000..3bad57399 --- /dev/null +++ b/ruoyi-common/ruoyi-common-pdf/pom.xml @@ -0,0 +1,41 @@ + + + + org.dromara + ruoyi-common + ${revision} + + 4.0.0 + + ruoyi-common-pdf + + + ruoyi-common-pdf pdf模块 + + + + + org.dromara + ruoyi-common-core + + + + com.itextpdf + itext-asian + + + + com.itextpdf + itextpdf + + + + org.dromara + ruoyi-common-json + + + + + diff --git a/ruoyi-common/ruoyi-common-pdf/src/main/java/org/dromara/common/pdf/domain/PdfEntity.java b/ruoyi-common/ruoyi-common-pdf/src/main/java/org/dromara/common/pdf/domain/PdfEntity.java new file mode 100644 index 000000000..5cdc4abf1 --- /dev/null +++ b/ruoyi-common/ruoyi-common-pdf/src/main/java/org/dromara/common/pdf/domain/PdfEntity.java @@ -0,0 +1,27 @@ +package org.dromara.common.pdf.domain; + + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * Pdf基类 + * + * @author AprilWind + */ +@Data +public class PdfEntity implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * PDF模板路径 + */ + @JsonIgnore + private String templatePath; + +} diff --git a/ruoyi-common/ruoyi-common-pdf/src/main/java/org/dromara/common/pdf/utils/PdfUtils.java b/ruoyi-common/ruoyi-common-pdf/src/main/java/org/dromara/common/pdf/utils/PdfUtils.java new file mode 100644 index 000000000..e11b6923e --- /dev/null +++ b/ruoyi-common/ruoyi-common-pdf/src/main/java/org/dromara/common/pdf/utils/PdfUtils.java @@ -0,0 +1,102 @@ +package org.dromara.common.pdf.utils; + + +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 lombok.AccessLevel; +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.json.utils.JsonUtils; +import org.dromara.common.pdf.domain.PdfEntity; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.FileNotFoundException; +import java.io.InputStream; +import java.util.Map; + +/** + * PDF操作工具类 + * + * @author AprilWind + */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) +@Slf4j +public class PdfUtils { + + /** + * 根据继承自 PdfEntity 的实体对象,填充 PDF 模板 + * + * @param 继承自 PdfEntity 的实体类型 + * @param person 传入的实体对象,必须是 PdfEntity 或其子类的实例 + * @return 填充后的 PDF 输入流 + * @throws IllegalArgumentException 如果实体类中的模板路径为空或无效 + */ + public static InputStream fillPdfTemplateByAlias(T person) { + String templatePath = person.getTemplatePath(); + if (StringUtils.isBlank(templatePath)) { + throw new IllegalArgumentException("模板路径未指定或无效"); + } + Map fieldValues = JsonUtils.parseObject(JsonUtils.toJsonString(person), Map.class); + return fillPdfTemplate(templatePath, fieldValues); + } + + /** + * 填充 PDF 模板 + * + * @param templatePath 模板文件路径 + * @param fieldValues 表单字段及其值的映射 + * @return 填充后的 PDF 输入流 + */ + private static InputStream fillPdfTemplate(String templatePath, Map fieldValues) { + try ( + InputStream templateStream = PdfUtils.class.getClassLoader().getResourceAsStream(templatePath); + ByteArrayOutputStream outputStream = new ByteArrayOutputStream() + ) { + if (templateStream == null) { + throw new FileNotFoundException("PDF 模板文件未找到:" + templatePath); + } + + // 读取 PDF 模板 + PdfReader reader = new PdfReader(templateStream); + PdfStamper stamper = new PdfStamper(reader, outputStream); + + try { + // 获取表单字段 + AcroFields form = stamper.getAcroFields(); + + // 添加中文字体支持(可选) + BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); + form.addSubstitutionFont(bf); + + // 填充表单字段 + for (Map.Entry entry : fieldValues.entrySet()) { + String fieldName = entry.getKey(); + String fieldValue = entry.getValue(); + if (form.getField(fieldName) != null) { + form.setField(fieldName, fieldValue); + } else { + System.err.printf("PDF模板填充失败:未找到字段 [%s],对应值为 [%s]%n", fieldName, fieldValue); + } + } + + // 设置表单为不可编辑 + stamper.setFormFlattening(true); + } finally { + // 确保 PDF 相关资源关闭 + stamper.close(); + reader.close(); + } + + // 返回填充后的 PDF 文件流 + return new ByteArrayInputStream(outputStream.toByteArray()); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + +} diff --git a/ruoyi-common/ruoyi-common-pdf/src/main/resources/templates/sample_template.pdf b/ruoyi-common/ruoyi-common-pdf/src/main/resources/templates/sample_template.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0e6321a00ac2c006aed8e16ca6c0d831e4d9d473 GIT binary patch literal 93380 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 literal 0 HcmV?d00001 diff --git a/ruoyi-modules/ruoyi-system/pom.xml b/ruoyi-modules/ruoyi-system/pom.xml index 0fc6d5513..556e395ec 100644 --- a/ruoyi-modules/ruoyi-system/pom.xml +++ b/ruoyi-modules/ruoyi-system/pom.xml @@ -48,6 +48,11 @@ ruoyi-common-log + + org.dromara + ruoyi-common-pdf + + org.dromara diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/AhhrfsPdfController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/AhhrfsPdfController.java new file mode 100644 index 000000000..1312ea8f9 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/AhhrfsPdfController.java @@ -0,0 +1,90 @@ +package org.dromara.system.controller.system; + +import cn.hutool.core.io.IoUtil; +import jakarta.servlet.http.HttpServletResponse; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.core.utils.file.FileUtils; +import org.dromara.common.pdf.utils.PdfUtils; +import org.dromara.common.web.core.BaseController; +import org.dromara.system.domain.vo.AhhrfsPdfSampleVo; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.io.InputStream; + +/** + * 下载PDF + * + * @author AprilWind + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/ahhrfs/pdf") +public class AhhrfsPdfController extends BaseController { + + /** + * 下载PDF对象 + */ + @GetMapping("/download/{id}") + public void download(@PathVariable Long id, HttpServletResponse response) { + AhhrfsPdfSampleVo sampleVo = new AhhrfsPdfSampleVo(); + sampleVo.setChdActNme("测试数据123"); + sampleVo.setChdActNo("123213123123"); + sampleVo.setSvsActNo("42131231231231"); + try (InputStream inputStream = PdfUtils.fillPdfTemplateByAlias(sampleVo)) { + int available = inputStream.available(); + IoUtil.copy(inputStream, response.getOutputStream(), available); + response.setContentLength(available); + } catch (Exception e) { + throw new ServiceException(e.getMessage()); + } + } + + /** + * 前端 multipart/form-data 请求 + */ + @PostMapping("/download") + public void download(AhhrfsPdfSampleVo sampleVo, HttpServletResponse response) { +// AhhrfsPdfSampleVo sampleVo = new AhhrfsPdfSampleVo(); +// sampleVo.setChdActNme("测试数据123"); +// sampleVo.setChdActNo("123213123123"); +// sampleVo.setSvsActNo("42131231231231"); + String fileName = StringUtils.isBlank(sampleVo.getChdActNme()) ? "default.pdf" : sampleVo.getChdActNme(); + try (InputStream inputStream = PdfUtils.fillPdfTemplateByAlias(sampleVo)) { + // 设置响应头 + response.setContentType("application/pdf"); + response.setHeader("Content-Disposition", "attachment; filename=\"" + FileUtils.percentEncode(fileName) + "\""); + // 将 PDF 数据写入响应流 + IoUtil.copy(inputStream, response.getOutputStream(), inputStream.available()); + response.flushBuffer(); + } catch (Exception e) { + throw new ServiceException("PDF 下载失败: " + e.getMessage()); + } + } + + /** + * 前端 application/json 请求 + */ + @PostMapping("/download2") + public void download2(@RequestBody AhhrfsPdfSampleVo sampleVo, HttpServletResponse response) { +// AhhrfsPdfSampleVo sampleVo = new AhhrfsPdfSampleVo(); +// sampleVo.setChdActNme("测试数据123"); +// sampleVo.setChdActNo("123213123123"); +// sampleVo.setSvsActNo("42131231231231"); + String fileName = StringUtils.isBlank(sampleVo.getChdActNme()) ? "default.pdf" : sampleVo.getChdActNme(); + try (InputStream inputStream = PdfUtils.fillPdfTemplateByAlias(sampleVo)) { + // 设置响应头 + response.setContentType("application/pdf"); + response.setHeader("Content-Disposition", "attachment; filename=\"" + FileUtils.percentEncode(fileName) + "\""); + // 将 PDF 数据写入响应流 + IoUtil.copy(inputStream, response.getOutputStream(), inputStream.available()); + response.flushBuffer(); + } catch (Exception e) { + throw new ServiceException("PDF 下载失败: " + e.getMessage()); + } + } + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/AhhrfsPdfSampleVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/AhhrfsPdfSampleVo.java new file mode 100644 index 000000000..0ba744768 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/AhhrfsPdfSampleVo.java @@ -0,0 +1,36 @@ +package org.dromara.system.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import lombok.Data; +import org.dromara.common.pdf.domain.PdfEntity; + +/** + * 示例PDF + * + * @author AprilWind + */ +@Data +@ExcelIgnoreUnannotated +public class AhhrfsPdfSampleVo extends PdfEntity { + + /** + * 监管账户 + */ + private String svsActNo; + + /** + * 子账户 + */ + private String chdActNo; + + /** + * 子账户名称 + */ + private String chdActNme; + + @Override + public String getTemplatePath() { + return "templates/sample_template.pdf"; + } + +}