Pluggable Page Render Backends
HotPDF میتواند رندر بیتمپ صفحه بارگذاریشده را از طریق بکاند تعریفشده توسط برنامه مسیریابی کند و رندرکنندهٔ موجود را بهعنوان پیشفرض بدونپیکربندی و جایگزین اختیاری نگه دارد
بکاند بومی داخلی
PDF.UseNativeGDIRenderBackend;
Bitmap := PDF.RenderLoadedPageToBitmap(0, 144);
THPDFNativeGDIRenderBackend رندرکننده بومی GDI جاافتاده ویندوز را از طریق همان قرارداد عمومی بکاندی که پیادهسازیهای بیرونی استفاده میکنند در معرض دید میگذارد
قابلیتهایش prbcNative، prbcDeterministic، prbcTransparency، prbcColourManagement و prbcThreadSafe را اعلام میکند بدون ادعای prbcDeviceAcceleration
بکاند خطپویش SIMD
var
Backend: IHPDFPageRenderBackend;
begin
Backend := THPDFSIMDScanlineRenderBackend.Create;
PDF.PageRenderBackend := Backend;
Bitmap := PDF.RenderLoadedPageToBitmap(0, 144);
end;
THPDFSIMDScanlineRenderBackend ابتدا display list کامپایلشدهٔ کامل را preflight میکند و سپس پر کردن مستطیلهای DeviceRGB یا DeviceGray پشتیبانیشده را از طریق دستههای 64 بایتی و دنبالههای برداری 16 بایتی مستقیماً در سطح بیتمپ 32 بیتی نهایی مینویسد
مسیرهای مستطیلی مرکب بهعنوان یک عملیات رنگ مطابق قاعدهٔ پر کردن nonzero یا even-odd دنبال میشوند و حفرهها، جهت زیرمسیرهای ترنسفورمشده و محتوای رنگآمیزیشدهٔ قبلی حفظ میشوند؛ rasterization در دستههای محدود لغو عملیات را بررسی میکند و سطوح ناقص را دور میاندازد
این بکاند ذخیره و بازیابی وضعیت گرافیک، مقیاس عمودزا، ماتریسهای جابهجایی و چرخش قائمزا، تغییر رنگ پر، مستطیلها، عملگرهای پر و بازنشانی مسیر را میپذیرد؛ متن، مسیرهای دلخواه، خطکشیها، تصاویر، شفافیت، برش، الگوها، سایهزنیها، فضاهای رنگ پشتیبانینشده و تبدیلهای غیرعمودزا پیش از تخصیص بیتمپ رد میشوند
قابلیتهایش prbcSIMD، prbcThreadSafe و prbcDeterministic را اعلام میکند بدون ادعای شتابدهی دستگاه، شفافیت یا مدیریت رنگ
THPDFSIMDRenderBackendStatistics سطوح مستقیم، مستطیلهای رندرشده، بلوکهای برداری، پیکسلهای دنباله اسکالر و دقیقاً عملگر ردشده را وقتی جایگزین لازم است گزارش میکند
قرارداد بکاند سفارشی
را پیاده کنید و به IHPDFPageRenderBackend نسبتش دهید THotPDF.PageRenderBackend
THPDFPageRenderBackendRequest اندیس صفحه و DPI درخواستی، THPDFPageDisplayList کامپایلشده و یک حلکنندهٔ THPDFRenderDocAccess برای جریانها، تصاویر، فونتها، محتوای اختیاری، مدیریت رنگ و لغو فراهم میکند
یک بکاند میتواند هر عملگر کامپایلشده را از طریق THPDFPageDisplayList.GetToken بازرسی کند بدون تجزیه دوباره محتوای صفحه
True با یک TBitmap تازهتخصیصیافته False برای ردّ درخواست را بدون بیتمپ برگردانید
همزمانی و جایگزین
بکاندهایی که prbcThreadSafe را اعلام کنند میتوانند از طریق هر دو خط لوله رندر موازی صفحه همزمان اجرا شوند
بکاندهای بدون آن قابلیت از طریق یک قفل فراخوانی اختصاصی سری میشوند در حالی که کامپایل display-list همزمان میماند
rbfpSoftwareFallback درخواست بکاندِ در دسترس نبودن، ردشده یا ناموفق را با رندرکننده موجود دوباره تلاش میکند، در حالی که rbfpFail مقدار EHPDFRenderBackend پرتاب میکند
یک بکاندمیتواند بهاختیار IHPDFPageRenderBackendFailureInfo را پیاده کند یا دلیل تشخیصی مخصوص هر درخواست را برگرداند تا دلیلِ ردّ همزمان برای همان تلاش رندر حفظ شود
تعویض بکاند، مدخلهای حافظهٔ نهان صفحههای رندرشدهٔ درونحافظهای و پایدار را باطل میکند تا تصاویر رندرکنندههای مختلف هرگز با هم ترکیب نشوند
تشخیصها و گیت بصری
THPDFRenderBackendStatistics تلاشها، موفقیتها، شکستها، جایگزینهای نرمافزاری، فراخوانیهای سریشده، زمان سپریشده، نام بکاند و آخرین علت شکست را گزارش میکند
نمونه برابری داخلی با شفافیت همپوشان اجرا میشود و روی Win32 و Win64 نسبت به رندرکننده پیشفرض، بیشینهٔ Delta E صفر، خطای RGB ترکیب آلفا صفر و شمار پیکسل متمایز صفر اعلام میکند