Backend Render Halaman yang Dapat Dipasang
HotPDF dapat merutekan rendering bitmap halaman yang dimuat melalui backend yang ditentukan aplikasi sambil mempertahankan renderer yang ada sebagai default tanpa-konfigurasi dan fallback opsional
Backend native bawaan
PDF.UseNativeGDIRenderBackend;
Bitmap := PDF.RenderLoadedPageToBitmap(0, 144);
THPDFNativeGDIRenderBackend mengekspos renderer GDI native Windows yang mapan melalui kontrak backend publik yang sama yang digunakan oleh implementasi eksternal
Kemampuannya mendeklarasikan prbcNative, prbcDeterministic, prbcTransparency, prbcColourManagement, dan prbcThreadSafe tanpa mengklaim prbcDeviceAcceleration
Backend scanline SIMD
var
Backend: IHPDFPageRenderBackend;
begin
Backend := THPDFSIMDScanlineRenderBackend.Create;
PDF.PageRenderBackend := Backend;
Bitmap := PDF.RenderLoadedPageToBitmap(0, 144);
end;
THPDFSIMDScanlineRenderBackend melakukan preflight atas display list terkompilasi secara utuh, lalu menulis pengisian persegi DeviceRGB atau DeviceGray yang didukung langsung ke permukaan bitmap 32-bit final melalui batch 64 byte dan ekor vektor 16 byte
Jalur persegi majemuk mengikuti fill rule nonzero atau even-odd sebagai satu operasi cat, mempertahankan lubang, arah subpath yang ditransformasi, dan konten yang sudah digambar sebelumnya; rasterisasi memeriksa pembatalan dalam batch terbatas dan membuang permukaan yang parsial
Backend menerima save dan restore graphics-state, matriks skala ortogonal, translasi, dan rotasi sudut siku-siku, perubahan warna fill, persegi, operator fill, serta reset path; teks, path arbitrer, stroke, image, transparansi, clipping, pattern, shading, ruang warna yang tidak didukung, dan transformasi non-ortogonal ditolak sebelum alokasi bitmap
Kemampuannya mendeklarasikan prbcSIMD, prbcThreadSafe, dan prbcDeterministic tanpa mengklaim akselerasi perangkat, transparansi, atau manajemen warna
THPDFSIMDRenderBackendStatistics melaporkan permukaan langsung, persegi yang dirender, blok vektor, piksel ekor skalar, dan operator yang tepat yang ditolak ketika fallback dibutuhkan
Kontrak backend kustom
Implementasikan IHPDFPageRenderBackend dan tetapkan ke THotPDF.PageRenderBackend
THPDFPageRenderBackendRequest menyediakan indeks halaman dan DPI yang diminta, THPDFPageDisplayList yang dikompilasi, dan resolver THPDFRenderDocAccess untuk stream, image, font, konten opsional, manajemen warna, dan pembatalan
Backend dapat memeriksa setiap operator terkompilasi melalui THPDFPageDisplayList.GetToken tanpa mengurai ulang konten halaman
Kembalikan True beserta TBitmap yang baru dialokasikan untuk menyerahkan kepemilikan bitmap ke HotPDF; kembalikan False tanpa bitmap untuk menolak permintaan
Konkurensi dan fallback
Backend yang mendeklarasikan prbcThreadSafe dapat berjalan konkuren melalui kedua pipeline render halaman paralel
Backend tanpa kemampuan itu diserialisasi melalui lock panggilan khusus sementara kompilasi display list tetap konkuren
rbfpSoftwareFallback mencoba ulang permintaan backend yang tidak tersedia, ditolak, atau gagal dengan renderer yang ada, sedangkan rbfpFail memunculkan EHPDFRenderBackend
Backend secara opsional dapat mengimplementasikan IHPDFPageRenderBackendFailureInfo atau mengembalikan alasan diagnostik per permintaan, sehingga penolakan yang konkuren tetap menyimpan alasan untuk percobaan render yang tepat
Mengganti backend membatalkan entri cache halaman hasil render di memori maupun yang persisten, sehingga image dari renderer berbeda tidak pernah tercampur
Diagnostik dan gerbang visual
THPDFRenderBackendStatistics melaporkan percobaan, keberhasilan, kegagalan, fallback software, panggilan yang diserialisasi, waktu berlalu, nama backend, dan alasan kegagalan terakhir
Fixture paritas bawaan memakai transparansi yang saling tumpang tindih dan mendeklarasikan Delta E maksimum 0, error RGB alpha-compositing 0, serta jumlah piksel berbeda 0 dibanding renderer default pada Win32 dan Win64