LoadFromMappedFile
Gestionarea documentelor, performanță, intrare din fișier
Descriere
Încarcă și selectează un PDF local printr-o vizualizare mapată, doar pentru citire și mărginită, permițând citirile mari amânate de obiecte și de fluxuri să reutilizeze paginile de fișier ale sistemului de operare, fără a reține sursa completă în memorie
Sintaxă
Delphi
Function TPDFlib.LoadFromMappedFile(Const FileName, Password: WideString;
WindowSize: Int64= 0; Options: Integer= 0): Integer;Parametri
| FileName | Calea PDF-ului local |
|---|---|
| Password | Parola folosită pentru deschiderea PDF-ului, sau un șir gol pentru un document necriptat |
| WindowSize | Dimensiunea cerută a vizualizării mapate, în octeți; zero selectează 64 MiB, valorile sub granularitatea de alocare a sistemului de operare sunt ridicate la acea granularitate, iar valorile peste 1 GiB sunt plafonate |
| Options | Zero permite o rezervă de flux de fișier doar pentru citire, în timp ce PDF_MAPPED_FILE_REQUIRE_MAPPING eșuează dacă nu este activă o vizualizare mapată |
Valori returnate
| 0 | Argumentele au fost invalide, fișierul nu a putut fi deschis, maparea cerută nu a fost disponibilă sau PDF-ul nu a putut fi încărcat; examinați LastErrorCode |
|---|---|
| 1 | Documentul a fost încărcat și selectat |
Observații
Construirele Windows rețin o singură vizualizare doar pentru citire și o remapează la cerere, la frontiere de granularitate de alocare; celelalte platforme și eșecurile de mapare folosesc același contract de citire absolută peste un flux de fișier normal doar pentru citire, dacă maparea nu este cerutăVizualizarea implicită de 64 MiB mărginește utilizarea spațiului de adrese independent de dimensiunea sursei și este potrivită pentru acces dispers la fișiere locale mari; o vizualizare mai mică poate reduce spațiul de adrese rezident, cu costul mai multor remapăriCitirile absolute de felii de obiect copiază direct din vizualizarea curentă în stocarea deținută de analizator, fără a modifica cursorul pozițional al fluxului; acesta nu este un API persistent de pointer fără copiere, deoarece remaparea invalidează adresele vizualizăriiSursa rămâne deschisă până când documentul încărcat este eliminat, iar salvarea sau extragerea amânată pot continua să o citeascăDacă
OnPassword este atribuit, fiecare reîncercare de parolă respinsă primește un flux mapat și o stare de analizor noiFolosiți
GetMappedFileInfo pentru a confirma dacă maparea este activă și pentru a examina statisticile curente ale vizualizării și ale citirilor