IHPDFPageRenderBackend 接口

IHPDFPageRenderBackend = interface
  ['{ACCC7AA4-30B5-4C7B-A4E4-3B9A7481030A}']
  function GetName: AnsiString;
  function GetCapabilities: THPDFPageRenderBackendCapabilities;
  function IsAvailable: boolean;
  function RenderPage(const Request: THPDFPageRenderBackendRequest;
    out Bitmap: TBitmap;
    out Diagnostics: THPDFRenderFallbackDiagnostics;
    out DiagnosticDroppedCount: Integer;
    out Type3Stats: THPDFType3GlyphCacheStats;
    out TransparencyStats: THPDFTransparencyGroupTileStats): boolean;
end;

可插拔页面 render backend 的契约,GDI 和 SIMD scanline 实现都遵循它;GetName 和 GetCapabilities 描述 backend 自身,IsAvailable 报告运行时前提(比如 CPU 指令集支持)是否满足

RenderPage 按 backend 请求渲染一个页面;返回 False 表示调用方应回退到其他 backend,各个 out 参数带回回退诊断以及 Type 3 字形缓存和 transparency group 分块统计,方便做性能分析

IHPDFPageRenderBackendFailureInfo 接口, 高级渲染语义