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;
检查字体字符可用性
此标志允许检查字体字符的可用性。
如果你的文本包含指定字体中不存在的字符:
- 当此标志启用时:将抛出
DocumentDrawingException
。 - 当此标志禁用时:生成的 PDF 文件中会出现占位符字符。
启用此标志可能会略微降低文档生成性能。但它提供了提示,表明使用的字体不足以产生正确的结果。
默认情况下,只有在调试器已连接时才启用此标志。
QuestPDF.Settings.CheckIfAllTextGlyphsAreAvailable = false;