项目

QuestPDF 设置

有多个参数可以调整生成过程。这些参数通过静态 Settings 类可用。

// 定义带有默认设置的设置类
public static class Settings
{
    public static int DocumentLayoutExceptionThreshold { get; set; } = 250;
    public static bool EnableCaching { get; set; } = !System.Diagnostics.Debugger.IsAttached;
    public static bool EnableDebugging { get; set; } = System.Diagnostics.Debugger.IsAttached;
    public static bool CheckIfAllTextGlyphsAreAvailable { get; set; } = System.Diagnostics.Debugger.IsAttached;
}

// 在任何需要的地方调整属性
// 最好在启动代码中设置
QuestPDF.Settings.DocumentLayoutExceptionThreshold = 1000;

文档最大长度

这个值代表库能产生的文档的最大长度。当布局约束太强,比如一个元素无法放入另一个时,这很有用。在这种情况下,库会产生无限长度的文档,消耗所有可用资源。为了中断算法并保护环境,库会在达到指定的文档长度后停止渲染过程。

如果你的内容需要生成更长的文档,请分配一个合适的值。

QuestPDF.Settings.DocumentLayoutExceptionThreshold = 250;

缓存

此标志会生成额外的文档元素来缓存布局计算结果。在大多数情况下,这会显著提高性能,但会稍微增加内存消耗。

默认情况下,只有在调试器未连接时才启用此标志。

QuestPDF.Settings.EnableCaching = true;

调试

此标志会生成额外的文档元素以改善布局调试体验。当抛出 DocumentLayoutException 时,库能够提供额外的执行上下文。它包括布局计算结果和问题区域的位置。

默认情况下,只有在调试器已连接时才启用此标志。

QuestPDF.Settings.EnableDebugging = false;

检查字体字符可用性

此标志允许检查字体字符的可用性。

如果你的文本包含指定字体中不存在的字符:

  1. 当此标志启用时:将抛出 DocumentDrawingException
  2. 当此标志禁用时:生成的 PDF 文件中会出现占位符字符。

启用此标志可能会略微降低文档生成性能。但它提供了提示,表明使用的字体不足以产生正确的结果。

默认情况下,只有在调试器已连接时才启用此标志。

QuestPDF.Settings.CheckIfAllTextGlyphsAreAvailable = false;
在本文档中