Takılabilir Sayfa Render Backend'leri
HotPDF, yüklü sayfa bitmap rendering'ini uygulama tanımlı bir backend'e yönlendirebilir; mevcut renderer, sıfır yapılandırmalı varsayılan ve opsiyonel fallback olarak kalır
Yerleşik yerel arka uç
PDF.UseNativeGDIRenderBackend;
Bitmap := PDF.RenderLoadedPageToBitmap(0, 144);
THPDFNativeGDIRenderBackend, yerleşik Windows native GDI renderer'ını, harici uygulamaların kullandığı genel backend sözleşmesi üzerinden dışa açar
Yetenekleri, prbcDeviceAcceleration talep etmeden prbcNative, prbcDeterministic, prbcTransparency, prbcColourManagement ve prbcThreadSafe beyan eder
SIMD scanline backend
var
Backend: IHPDFPageRenderBackend;
begin
Backend := THPDFSIMDScanlineRenderBackend.Create;
PDF.PageRenderBackend := Backend;
Bitmap := PDF.RenderLoadedPageToBitmap(0, 144);
end;
THPDFSIMDScanlineRenderBackend, derlenmiş display list'in tamamını preflight eder; ardından desteklenen DeviceRGB veya DeviceGray dikdörtgen fill'lerini, 64-byte batch'ler ve 16-byte vector kuyruklarıyla doğrudan nihai 32-bit bitmap yüzeyine yazar
Backend; graphics-state save ve restore, ortogonal scale, öteleme ve dik açı rotation matrislerini, fill renk değişimlerini, dikdörtgenleri, fill operatörlerini ve path sıfırlamayı kabul eder; metin, keyfi path'ler, stroke'lar, görseller, transparency, clipping, pattern'ler, shading'ler, desteklenmeyen renk uzayları ve ortogonal olmayan transform'lar bitmap tahsisinden önce vazgeçer
Arka uç; graphics-state kaydet/geri yükle, dik açılı ölçekleme, öteleme ve dik açılı döndürme matrislerini, dolgu rengi değişimlerini, dikdörtgenleri, dolgu operatörlerini ve yol sıfırlamayı kabul eder; metin, keyfi yollar, konturlar, görüntüler, saydamlık, kırpma, desenler, shading'ler, desteklenmeyen renk uzayları ve dik olmayan dönüşümler bitmap ayrılmadan önce reddedilir
Yetenekleri, device acceleration, transparency veya colour management talep etmeden prbcSIMD, prbcThreadSafe ve prbcDeterministic beyan eder
THPDFSIMDRenderBackendStatistics; doğrudan yüzeyleri, render edilen dikdörtgenleri, vector blokları, scalar kuyruk piksellerini ve fallback gerektiğinde tam olarak reddedilen operatörü raporlar
Özel arka uç sözleşmesi
IHPDFPageRenderBackend'i uygulayın ve THotPDF.PageRenderBackend'e atayın
THPDFPageRenderBackendRequest; istenen sayfa indeksini ve DPI'ı, derlenmiş THPDFPageDisplayList'i ve stream'ler, görseller, fontlar, optional content, colour management ve iptal için bir THPDFRenderDocAccess resolver'ı sağlar
Bir backend, her derlenmiş operatörü, sayfa içeriğini yeniden ayrıştırmadan THPDFPageDisplayList.GetToken üzerinden inceleyebilir
Bitmap mülkiyetini HotPDF'e devretmek için yeni tahsis edilmiş bir TBitmap ile True döndürün; isteği reddetmek için bitmap olmadan False döndürün
Eşzamanlılık ve geri dönüş
prbcThreadSafe beyan eden backend'ler, her iki paralel sayfa-render pipeline'ı üzerinden eşzamanlı çalışabilir
Bu yeteneğe sahip olmayan backend'ler, ayrılmış bir call lock üzerinden serileştirilir; display-list derlemesi eşzamanlı kalmaya devam eder
rbfpSoftwareFallback, kullanılamayan, reddedilen veya başarısız bir backend isteğini mevcut renderer ile yeniden dener; rbfpFail ise EHPDFRenderBackend fırlatır
Bir backend, opsiyonel olarak IHPDFPageRenderBackendFailureInfo uygulayabilir veya istek başına bir tanı nedeni döndürebilir; böylece eşzamanlı ret'ler tam render denemesinin nedenini korur
Backend'i değiştirmek, in-memory ve kalıcı rendered-page cache girdilerini geçersiz kılar; böylece farklı renderer'lardan gelen görseller asla karıştırılmaz
Tanılama ve görsel kapı
THPDFRenderBackendStatistics; denemeleri, başarıları, başarısızlıkları, software fallback'leri, serileştirilmiş çağrıları, geçen süreyi, backend adını ve son başarısızlık nedenini raporlar
Yerleşik parity fixture'ı, üst üste binen transparency kullanır ve Win32 ile Win64'te varsayılan renderer'a karşı maksimum Delta E 0, alpha-compositing RGB hatası 0 ve farklı piksel sayısı 0 beyan eder