Pluggable Page Render Backends

HotPDF može usmjeriti bitmap renderiranje učitanih stranica kroz pozadinski sustav definiran aplikacijom, zadržavajući postojeći renderer kao zadanu opciju bez konfiguracije i kao neobaveznu rezervu

Ugrađeni izvorni backend

PDF.UseNativeGDIRenderBackend;
Bitmap := PDF.RenderLoadedPageToBitmap(0, 144);

THPDFNativeGDIRenderBackend izlaže uspostavljeni izvorni Windows GDI renderer kroz isti javni ugovor pozadinskog sustava koji koriste vanjske implementacije

Njegove sposobnosti deklariraju prbcNative, prbcDeterministic, prbcTransparency, prbcColourManagement i prbcThreadSafe bez deklariranja prbcDeviceAcceleration

SIMD backend po retcima

var
  Backend: IHPDFPageRenderBackend;
begin
  Backend := THPDFSIMDScanlineRenderBackend.Create;
  PDF.PageRenderBackend := Backend;
  Bitmap := PDF.RenderLoadedPageToBitmap(0, 144);
end;

THPDFSIMDScanlineRenderBackend unaprijed provjerava potpuni kompajlirani popis prikaza, a zatim upisuje podržana DeviceRGB ili DeviceGray pravokutna ispunjavanja izravno u konačnu 32-bitnu bitmap površinu kroz 64-bajtne serije i 16-bajtne vektorske repove

Složene pravokutne putanje bojaju se po nonzero ili even-odd pravilu ispunjavanja kao jedna operacija bojanja, čuvajući rupe, smjer transformiranih podputanja i već naslikani sadržaj; rasterizacija provjerava otkazivanje u ograničenim serijama i odbacuje djelomične površine

Pozadinski sustav prihvaća spremanje i vraćanje grafičkog stanja, ortogonalno mjerilo, matrice translacije i pravokutne rotacije, promjene boje ispune, pravokutnike, operatore ispune i reset puta; tekst, proizvoljni putevi, potezi, slike, prozirnost, isječkanje, uzorci, sjenčanja, nepodržani prostori boja i neortogonalne transformacije odustaju prije alokacije bitmape

Njegove sposobnosti deklariraju prbcSIMD, prbcThreadSafe i prbcDeterministic bez deklariranja ubrzanja uređaja, prozirnosti ili upravljanja bojama

THPDFSIMDRenderBackendStatistics izvještava izravne površine, renderirane pravokutnike, vektorske blokove, skalarne piksele repa i točno odbijenog operatora kada je rezerva potrebna

Ugovor vlastitog backenda

Implementirajte IHPDFPageRenderBackend i dodijelite ga THotPDF.PageRenderBackend

THPDFPageRenderBackendRequest isporučuje zatraženi indeks stranice i DPI, kompajlirani THPDFPageDisplayList i razrješitelj THPDFRenderDocAccess za tokove, slike, fontove, neobavezni sadržaj, upravljanje bojama i otkazivanje

A backend can inspect each compiled operator through THPDFPageDisplayList.GetToken without reparsing page content

Vratite True s novoalociranim TBitmap da prenesete vlasništvo bitmape na HotPDF; vratite False bez bitmape da odbijete zahtjev

Istovremenost i rezerva

Backends declaring prbcThreadSafe can run concurrently through both parallel page-render pipelines

Backendovi bez te mogućnosti serijaliziraju se kroz namjenski call lock, dok kompilacija display liste ostaje istodobna

rbfpSoftwareFallback ponavlja nedostupan, odbijen ili pao zahtjev pozadinskog sustava postojećim rendererom, dok rbfpFail diže EHPDFRenderBackend

Pozadinski sustav može neobavezno implementirati IHPDFPageRenderBackendFailureInfo ili vratiti dijagnostički razlog po zahtjevu tako da istodobna odustajanja čuvaju razlog točnog pokušaja renderiranja

Mijenjanje pozadinskog sustava poništava unose predmemorije renderiranih stranica u memoriji i trajne tako da se slike različitih renderera nikad ne miješaju

Dijagnostika i vizualna kapija

THPDFRenderBackendStatistics izvještava pokušaje, uspjehe, neuspjehe, softverske rezerve, serializirane pozive, proteklo vrijeme, naziv pozadinskog sustava i posljednji razlog neuspjeha

Ugrađena paritetna pričuvka koristi preklapajuću prozirnost i deklarira maksimalni Delta E 0, RGB grešku alpha-kompozicije 0 i broj različitih piksela 0 naspram zadanog renderera na Win32 i Win64

Povezani API-ji