LoadFromRangeSource
Dokumenthåndtering, ydeevne
Beskrivelse
Indlæser og vælger en PDF gennem et synkront random access-callback, så HTTP-klienter, databaser, objektlagre og brugerdefinerede lagerudbydere kun kan levere de byte-områder, fortolkeren rører
Syntaks
Delphi
Function TPDFlib.LoadFromRangeSource(SourceSize: Int64;
ReadCallback: TPDFlibRangeReadEvent; Const Password: WideString;
ChunkSize: LongInt= 0; CacheLimitBytes: Int64= 0;
CoalesceWindowMS: Cardinal= PDF_NET_DEFAULT_COALESCE_WINDOW_MS;
AvailabilityCallback: TPDFlibRangeAvailabilityEvent= Nil): Integer;Parametre
| SourceSize | Den autoritative samlede kildestørrelse i bytes |
|---|---|
| ReadCallback | Det callback, der kopierer bytes for en absolut kildeforskydning |
| Password | Adgangskoden, der bruges til at åbne PDF'en, eller en tom streng for et ukrypteret dokument |
| ChunkSize | Granulariteten for justerede områdehentninger; nul vælger standardværdien 64 KiB, og værdier under 4096 bruger også standardværdien |
| CacheLimitBytes | Det maksimale antal bytes gemt på tværs af mindst-senest-anvendte vinduer; nul vælger standardværdien 4 MiB, og værdier under én chunk hæves til én chunk |
| CoalesceWindowMS | Indsamlingsvinduet for den første ikke-cachede chunk i hver absolut læsning; 2 millisekunder er standardværdien, og nul deaktiverer den indledende ventetid |
| AvailabilityCallback | En valgfri ikke-hentende test for byte-områder, der allerede findes i progressivt lager |
Returværdier
| 0 | Kildeargumenterne var ugyldige, eller PDF'en kunne ikke indlæses; undersøg LastErrorCode |
|---|---|
| 1 | Dokumentet blev indlæst og valgt |
Bemærkninger
Læse-callback'en modtager absolutte nul-baserede offsets og må højst skrive Count bytes til Buffer og returnerer antallet skrevet
Callback-målet og dets bagvedliggende lager skal forblive gyldigt, indtil det indlæste dokument lukkes, fordi siderendering, udtrækning og gemning senere kan anmode om flere områder
Kald er synkrone og kan ankomme i ikke-sekventiel rækkefølge; et kort resultat accepteres ved kildens fysiske ende, mens et uventet nulresultat får indlæsning eller den aktuelle udskudte operation til at fejle
Når AvailabilityCallback er tildelt, returnér en ikke-nul-værdi kun, når det komplette anmodede område kan læses straks uden transport eller blokerende I/O
Et mellemlagret område er tilgængeligt uanset callback-resultatet; et Nil-callback bevarer synkron adfærd ved at behandle hvert gyldigt kildeområde som tilgængeligt
Justerede blokke undgår duplikat-transporthentninger for overlappende læsninger, mens bytebudgettet afgrænser gemt fremførsel uafhængigt af dokumentstørrelsen
Udskudte objekt- og segmentlæsninger bruger absolutte offsets, så samtidigt arbejde deler samme blok-anmodninger og fletter tilstødende køede blokke uden at ændre den positionelle strøm-cursor
Kilde-callbacks serialiseres og må ikke rekursivt læse fra den samme områdestrøm
Brug GetRangeSourceDataAvailability til at teste side-, formular- eller indirekt objekt-afhængigheder uden at læse områder rapporteret som manglende
Brug GetRangeSourceCacheInfo, SetRangeSourceCacheLimit og ClearRangeSourceCache til at observere eller ændre den aktive cache
Biblioteket ejer sin interne søgbare områdestrøm, men ejer ikke callback-målet eller dets bagvedliggende lager