PDFium Delphi Component Docs

RenderPagesParallel metoda

Component: TPdf  ·  Unit: PDFium
Izriše več zahtevkov strani sočasno, pri čemer je vsak delavec lastnik izoliranega dokumenta PDFium in handle-a strani

Syntax

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

Description

RenderPagesParallel enkrat zajame trenutni dokument v TPdfRandomAccessStore, odstrani šifriranje posnetka in vir pusti nespremenljivega, dokler se ne zapre vsak delavski dokument

Zajem v pomnilniku se deli neposredno, brez druge kopije bajtnega polja, preliti zajem je izpostavljen prek ene preslikave datoteke, ki je samo za branje, ob napaki preslikave pa se pot razveje nazaj na blokovska branja FPDF_LoadCustomDocument iz iste varne-za-niti shrambe

Vsak delavec naloži zasebno začasno kopijo dejavne binarne datoteke PDFium kot neodvisen modul, ta modul inicializira na svoji delovni niti in ponovno uporablja svoj FPDF_DOCUMENT, medtem ko nalaga in zapira dodeljene strani

Stanje modula, dokumenta, strani, postopnega izrisa in bitne slike nikoli ne prečka meja delavcev, s čimer se izogiba nevarnim sočasnim klicem v en modul PDFium

PageNumbers uporablja javno konvencijo strani, številčenih od 1, vrnjeno polje Results pa se vedno ujema z vrstnim redom zahtevka, tudi ko delavci končajo v drugačnem vrstnem redu ali posamična stran spodleti

Vsak uspešen rezultat poseduje slikovni medpomnilnik 32-bit s spustom od zgoraj navzdol in Stride = Width * 4, z bajtnim vrstnim redom BGRA, razen kadar reReverseByteOrder zahteva RGBA

Options

FieldDefaultMeaning
Dpi96Ciljna ločljivost od več kot 0 do 2400 DPI
MaxWorkers00 izbere do štiri delavce, sicer 1 do 64, omejeno s številom zahtevkov
MaxPixelsPerPage64 MiPixelsZavrne stran, preden dodeli prevelik rezultatni medpomnilnik
MaxTotalOutputBytes512 MiBOmeji vsoto zadržanih uspešnih slikovnih medpomnilnikov
Rotationro0Uveljavi isti zasuk na vsak zahtevek in zamenja izhodne mere pri 90 ali 270 stopinjah
RenderOptions[]Izvorne zastavice izrisa PDFium, vključno s pripombami, sivino, tiskanjem, glajenjem in obratnim bajtnim vrstnim redom
BackgroundColorclWhiteZačetno ozadje pikslov, preden PDFium nariše vsebino strani

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