PDFium Component Docs

RenderPagesParallel-metode

Component: TPdf  ·  Unit: PDFium
Renderer flere sideforespørsler samtidig, mens hver arbeider eier et isolert PDFium-dokument og sidehåndtak

Syntax

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

Description

RenderPagesParallel fanger det gjeldende dokumentet én gang inn i TPdfRandomAccessStore, fjerner øyeblikksbildets kryptering og holder kilden uforanderlig til alle arbeiderdokumentene er lukket

Et fangst i minnet deles direkte uten en andre byte-array-kopi, en overspilt fangst eksponeres gjennom én skrivebeskyttet filtilordning, og svikt i tilordningen faller tilbake på FPDF_LoadCustomDocument-blokklesinger fra den samme trådsikre butikken

Hver arbeider laster en privat midlertidig kopi av den aktive PDFium-binærfilen som en uavhengig modul, initialiserer modulen på arbeidertråden sin og gjenbruker sitt eget FPDF_DOCUMENT mens tildelte sider lastes og lukkes

Modul-, dokument-, side-, progressiv-renderings- og bitmap-tilstand krysser aldri arbeidergrenser, noe som unngår utrygge samtidige kall inn i én PDFium-modul

PageNumbers bruker den offentlige ettbaserte sidekonvensjonen, og den returnerte Results-arrayen samsvarer alltid med forespørselsrekkefølgen, selv når arbeidere fullfører i feil rekkefølge eller en enkelt side svikter

Hvert vellykket resultat eier en topp-ned 32-bit pikselbuffer med Stride = Width * 4, med BGRA-byterekkefølge med mindre reReverseByteOrder ber om RGBA

Options

FieldDefaultMeaning
Dpi96Måloppløsning fra over 0 opp til 2400 DPI
MaxWorkers00 velger opptil fire arbeidere, ellers 1 til 64 avgrenset av antall forespørsler
MaxPixelsPerPage64 MiPixelsAvviser en side før en for stor resultatbuffer allokeres
MaxTotalOutputBytes512 MiBAvgrenser summen av beholdte vellykkede pikselbuffere
Rotationro0Anvender samme rotasjon på hver forespørsel og bytter utdatadimensjoner for 90 eller 270 grader
RenderOptions[]Native PDFium-renderingsflagg, inkludert merknader, gråtoner, utskrift, utjevning og omvendt bytterekkefølge
BackgroundColorclWhiteInnledende pikselbakgrunn før PDFium maler sideinnholdet

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