PDFium Delphi Component Docs

RenderPagesParallel metódus

Komponens: TPdf  ·  Egység: PDFium
Több oldal-kérést renderel egyszerre, miközben minden munkás elkülönített PDFium dokumentumot és oldal-leírót birtokol

Syntax

function RenderPagesParallel(
  const PageNumbers : array of Integer;
  const Options : TPdfParallelRenderOptions;
  const CancellationToken: IPdfCancellationToken = nil): TPdfParallelRenderReport;

Description

A RenderPagesParallel az aktuális dokumentumot egyszer rögzíti egy TPdfRandomAccessStore tárba, eltávolítja a pillanatfelvétel titkosítását, és a forrást változatlanul tartja, amíg minden munkásdokumentum be nem zárul

A memóriabeli rögzítés közvetlenül osztozik, második bájttömb-másolás nélkül, az átírt rögzítés egyetlen írásvédett fájlleképezésen keresztül érhető el, a leképezés sikertelensége esetén pedig a metódus ugyanabból a szálbiztos tárolóból a FPDF_LoadCustomDocument blokkolvasására áll vissza

Minden munkás betölti az aktív PDFium bináris privát ideiglenes másolatát független modulként, inicializálja azt a modult a munkaszálán, és a kiosztott oldalak betöltése és zárása közben a saját FPDF_DOCUMENT értékét használja újra

A modul-, dokumentum-, oldal-, progresszív renderelési és bitkép-állapot soha nem lépi át a munkáshatárokat, ezzel elkerülve a nem biztonságos egyidejű hívásokat egyetlen PDFium modulba

A PageNumbers a nyilvános, egynél kezdődő oldalszámozási konvenciót használja, a visszaadott Results tömb pedig mindig a kérés sorrendjét követi, akkor is, ha a munkások sorrenden kívül fejeződnek be, vagy egy-egy oldal megbukik

Minden sikeres eredmény felülről lefelé rendezett 32 bites pixelbuffert birtokol Stride = Width * 4 lépésközzel, BGRA bájtsorrenddel, kivéve ha a reReverseByteOrder RGBA-t kér

Options

FieldDefaultMeaning
Dpi96Célfelbontás a 0-nál nagyobb, legfeljebb 2400 DPI tartományból
MaxWorkers0A 0 legfeljebb négy munkást választ, egyébként 1 és 64 közti érték, a kérésszám által korlátozva
MaxPixelsPerPage64 MiPixelsElutasítja az oldalt, mielőtt túlméretes eredménybuffert foglalna
MaxTotalOutputBytes512 MiBA megtartott, sikeres pixelbufferek összegét korlátozza
Rotationro0Minden kérésre ugyanazt a forgatást alkalmazza, és 90 vagy 270 foknál felcseréli a kimeneti méreteket
RenderOptions[]Natív PDFium renderelési jelzők, beleértve a jegyzeteket, a szürkeárnyalatot, a nyomtatást, a simítást és a fordított bájtsorrendet
BackgroundColorclWhiteKezdeti pixelháttér, mielőtt a PDFium megrajzolná az oldal tartalmát

Results

Remarks

Example

uses FPdfAsync;

var
  Options: TPdfParallelRenderOptions;
  Report: TPdfParallelRenderReport;
  I: Integer;
begin
  Options := TPdfParallelRenderOptions.Default;
  Options.Dpi := 150;
  Options.MaxWorkers := 4;
  Options.RenderOptions := [reAnnotations];

  Report := Pdf1.RenderPagesParallel([1, 3, 5, 7], Options, CancelToken);
  for I := 0 to High(Report.Results) do
    if Report.Results[I].Status = pprsSucceeded then
      ConsumeTopDownPixels(Report.Results[I]);
end;

See Also

RenderPage, RenderPageProgressive, RenderTile