Skip to content

PDF 模板

模块集成

依赖

xml
<dependency>
    <groupId>com.wkclz.micro</groupId>
    <artifactId>micro-pdf</artifactId>
    <version>${latest.version}</version>
</dependency>

表结构

sql
CREATE TABLE `mdm_pdf_template` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `template_code` varchar(31)  NOT NULL DEFAULT '' COMMENT '模板编码',
  `template_name` varchar(31)  NOT NULL DEFAULT '' COMMENT '模板名称',
  `template_context` longtext  COMMENT '模板内容',
  `mock_data` longtext  COMMENT '模拟数据',
  `sort` int NOT NULL DEFAULT '0' COMMENT '排序',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `create_by` varchar(31)  DEFAULT NULL COMMENT '创建人',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `update_by` varchar(31)  DEFAULT NULL COMMENT '更新人',
  `remark` varchar(255)  DEFAULT NULL COMMENT '备注',
  `version` int NOT NULL DEFAULT '0' COMMENT '版本号',
  `status` bigint unsigned NOT NULL DEFAULT '1' COMMENT 'status',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `template_code` (`template_code`) USING BTREE
) ENGINE=InnoDB COMMENT='PDF模板';

界面

功能使用

  • 模板管理

    • 使用 html 方式编辑 pdf 模板。支持 themleaf 语法渲染业务数据
    • 编辑模板时,可模拟业务数据渲染模板的效果
  • 使用示例

java
public class PdfDemo {
  @Autowired
  private PdfApi pdfAPi;

  public void test() {
    // 生成PDF文件,返回本地文件路径
    String pdfPath = pdfAPi.writePdf("templateCode", data);
    // 生成PDF文件,并通过响应流,响应到前端
    pdfAPi.responsePdf("templateCode", data, response);
  }
}

使用注意

  • <body>标签需要完整保留,用于嵌入字体 (系统默认只支持宋体,若要支持其他字段,需要扩充字体库和功能)
  • 无法完全支持所有 css 语法,需反复调试模板以达到目标效果

Released under the MIT License.