IHPDFPageRenderBackend Interface

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;

GDI, SIMD 스캔라인 구현 같은 플러그형 페이지 렌더 백엔드의 계약입니다. GetName과 GetCapabilities는 백엔드를 설명하고, IsAvailable은 CPU 명령어 지원 같은 런타임 전제 조건이 갖춰졌는지 보고합니다

RenderPage는 백엔드 요청 하나로 페이지 하나를 렌더링합니다. False 결과는 호출자가 다른 백엔드로 폴백해야 함을 뜻하고, out 파라미터는 폴백 진단과 함께 성능 분석용 Type 3 글리프 캐시 및 투명도 그룹 타일링 통계를 실어 줍니다

IHPDFPageRenderBackendFailureInfo Interface, 고급 렌더링 의미론