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<>();
|
|
}
|