function RenderPagesParallel(
const PageNumbers : array of Integer;
const Options : TPdfParallelRenderOptions;
const CancellationToken: IPdfCancellationToken = nil): TPdfParallelRenderReport;
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
| Field | Default | Meaning |
|---|---|---|
Dpi | 96 | Måloppløsning fra over 0 opp til 2400 DPI |
MaxWorkers | 0 | 0 velger opptil fire arbeidere, ellers 1 til 64 avgrenset av antall forespørsler |
MaxPixelsPerPage | 64 MiPixels | Avviser en side før en for stor resultatbuffer allokeres |
MaxTotalOutputBytes | 512 MiB | Avgrenser summen av beholdte vellykkede pikselbuffere |
Rotation | ro0 | Anvender 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 |
BackgroundColor | clWhite | Innledende pikselbakgrunn før PDFium maler sideinnholdet |
pprsSucceeded returnerer dimensjoner, stride, pikselformat, piksler og forløpt tidpprsCancelled returnerer ingen piksler når avbruddet observeres før eller under den progressive renderingsløkkenpprsFailed isolerer en ugyldig side, native laste- eller renderingssvikt, eller avvisning på grunn av ressursbudsjett i ErrorMessageTotalOutputBytes og ende-til-ende forløpt tidSourceSize, SourcePeakMemoryBytes og SourceStorageBackend eksponerer kostnaden ved den avgrensede fangstenSourceBackingKind er ppsbSharedMemory, ppsbMemoryMappedFile eller ppsbRandomAccessStore etter kildefangstreInvert og reNightDuotone er bitmap-transformasjoner etter rendering og avslås av dette råpiksel-API-etSaveMemoryLimit og SaveTemporaryDirectory styrer det fangede kildematerialet, mens utdatabudsjettet dekker beholdte resultatbuffere, ikke interne PDFium-allokeringerTPdf-instansen samtidig som startøyeblikksbildet fangesPixels-arrays etter bruk
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;