HtmlToPdf/mvp/HtmlToPdfService.Core/Options/PdfServiceOptions.cs
2025-12-11 23:35:52 +08:00

97 lines
2.2 KiB
C#

namespace HtmlToPdfService.Core.Options;
/// <summary>
/// PDF 服务配置选项(主配置)
/// </summary>
public class PdfServiceOptions
{
/// <summary>
/// 浏览器池配置
/// </summary>
public BrowserPoolOptions BrowserPool { get; set; } = new();
/// <summary>
/// 存储配置
/// </summary>
public StorageOptions Storage { get; set; } = new();
/// <summary>
/// 回调配置
/// </summary>
public CallbackOptions Callback { get; set; } = new();
/// <summary>
/// PDF 默认转换配置
/// </summary>
public DefaultPdfOptions DefaultPdfOptions { get; set; } = new();
/// <summary>
/// 转换配置
/// </summary>
public ConversionOptions Conversion { get; set; } = new();
}
/// <summary>
/// PDF 默认转换配置
/// </summary>
public class DefaultPdfOptions
{
/// <summary>
/// 纸张格式
/// </summary>
public string Format { get; set; } = "A4";
/// <summary>
/// 是否横向
/// </summary>
public bool Landscape { get; set; } = false;
/// <summary>
/// 是否打印背景
/// </summary>
public bool PrintBackground { get; set; } = true;
/// <summary>
/// 是否优先使用 CSS 定义的页面大小
/// </summary>
public bool PreferCSSPageSize { get; set; } = false;
/// <summary>
/// 页边距
/// </summary>
public MarginOptions Margin { get; set; } = new();
}
/// <summary>
/// 页边距配置
/// </summary>
public class MarginOptions
{
public string Top { get; set; } = "10mm";
public string Right { get; set; } = "10mm";
public string Bottom { get; set; } = "10mm";
public string Left { get; set; } = "10mm";
}
/// <summary>
/// 转换配置
/// </summary>
public class ConversionOptions
{
/// <summary>
/// 默认转换超时时间(毫秒)
/// </summary>
public int DefaultTimeout { get; set; } = 60000;
/// <summary>
/// 默认等待条件
/// </summary>
public string DefaultWaitUntil { get; set; } = "networkidle2";
/// <summary>
/// 最大 HTML 内容大小(字节)
/// </summary>
public int MaxHtmlSize { get; set; } = 10485760; // 10MB
}