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

İlgili API'ler