9 小时以前 9bad721754fe8bbe2e5f459d0706e0fefac569f3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package cn.iocoder.yudao.module.qcreport.config;
 
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
 
import java.util.ArrayList;
import java.util.List;
 
/**
 * PDF 出件配置
 * <p>
 * 对应 application.yml 中的 yudao.qcreport.pdf 前缀配置。
 */
@Component
@ConfigurationProperties(prefix = "yudao.qcreport.pdf", ignoreUnknownFields = true)
@Data
public class QcReportPdfProperties {
 
    /** 是否启用 PDF 出件。部署环境没有浏览器时关掉它,接口会明确报「未启用」而不是抛 500 */
    private Boolean enabled = true;
 
    /**
     * 浏览器通道,如 chrome / msedge;留空则用 Playwright 自带的 Chromium
     * (后者需要先执行 {@code playwright install chromium} 下载,约 150MB)。
     */
    private String channel = "chrome";
 
    /** 浏览器可执行文件路径。配了就优先于 {@link #channel},用于装在非标准位置的浏览器 */
    private String executablePath = "";
 
    /** 同时进行的 PDF 渲染上限。Chromium 很吃内存,并发必须设闸 */
    private Integer concurrency = 2;
 
    /** 单次渲染超时(毫秒),同时用于等待页面资源与等待并发名额 */
    private Long timeoutMs = 30000L;
 
    /** 页脚是否打印「第 N 页 / 共 M 页」 */
    private Boolean showPageNumber = true;
 
    /** 额外的浏览器启动参数,如 Linux 以 root 运行需加 --no-sandbox */
    private List<String> browserArgs = new ArrayList<>();
 
}