原生字形裁剪

HPDFRenderHeadlessPagePNG 在应用活动 PDF 裁剪之前先栅格化填充字形覆盖

独立的 alpha 表面在整数设备空间字形边界内捕获既有裁剪,并在应用原始源和混合操作符之前把该覆盖与字形掩码相乘

这样避免了小数裁剪边界处丢失字形行,同时保留 W/W*、奇偶孔洞、曲线路径、变换文本、alpha、soft mask 和图案化颜色

绘制保留调用方的 PDF 路径和图形状态,包括嵌套文本与 Form 渲染状态

资源核算

两块 alpha 缓冲和字形栅格估计都在分配前计入工作内存预算,raw 字形栅格即使只有一小部分落在页面上也计入像素预算

raw 字形像素数以 Int64 安全相乘,并在分配任何 alpha 表面之前与配置的像素上限做精确比较

字节估计在乘 raw 字形像素数之前检查剩余 Int64 容量,调用方调高可配置的像素和内存上限时也不例外

覆盖生成和最终合成期间轮询取消,失败时目标保持不变,直到渲染成功完成

精度与验证

矩形裁剪与精确的独立像素区域比较,通道最大差异为 2

多边形与曲线测试把字形合成与单独的实心填充裁剪伴随项比较,限额相同

底层的 Cairo 裁剪栅格化可能与精确多边形区域不同,包括保留三角形情形:尺度 2 下四个像素最大差异 6

MuPDF 与 Poppler 的独立图像记录的是它们自己的字体和裁剪栅格化,并不定义原生公式

验收运行器与证据范围