LoadFromMappedFile
Gestione dei documenti, prestazioni, input da file
Descrizione
Carica e seleziona un PDF locale tramite una visualizzazione mappata di sola lettura delimitata, consentendo alle letture differite di oggetti e stream di grandi dimensioni di riutilizzare le pagine di file del sistema operativo senza mantenere l'intera sorgente in memoria
Sintassi
Delphi
Function TPDFlib.LoadFromMappedFile(Const FileName, Password: WideString;
WindowSize: Int64= 0; Options: Integer= 0): Integer;Parametri
| FileName | Il percorso del PDF locale |
|---|---|
| Password | La password usata per aprire il PDF, oppure una stringa vuota per un documento non cifrato |
| WindowSize | La dimensione richiesta della visualizzazione mappata in byte; zero seleziona 64 MiB, i valori inferiori alla granularità di allocazione del sistema operativo vengono portati a tale granularità e i valori superiori a 1 GiB vengono limitati |
| Options | Zero consente il fallback su file stream di sola lettura, mentre PDF_MAPPED_FILE_REQUIRE_MAPPING fallisce a meno che una visualizzazione mappata sia attiva |
Valori restituiti
| 0 | Gli argomenti non erano validi, il file non poteva essere aperto, il mapping richiesto non era disponibile oppure il PDF non poteva essere caricato; esaminare LastErrorCode |
|---|---|
| 1 | Il documento è stato caricato e selezionato |
Osservazioni
Le build di Windows trattengono una vista di sola lettura e la rimappano a richiesta ai confini di granularità di allocazione; le altre piattaforme e i fallimenti di mapping usano lo stesso contratto di lettura assoluta su un normale flusso di file di sola lettura, salvo che il mapping sia richiesto
I 64 MiB predefiniti di vista limitano l'uso dello spazio di indirizzi indipendentemente dalla dimensione della sorgente e servono per accesso sparso a file locali grandi; una vista più piccola può ridurre lo spazio di indirizzi residente al prezzo di più remap
Le letture assolute di fette di oggetto copiano direttamente dalla vista corrente allo storage di proprietà dell'analizzatore senza cambiare il cursore posizionale del flusso; questa non è un'API persistente di puntatore zero-copy perché il remap invalida gli indirizzi della vista
L'origine resta aperta finché il documento caricato non viene rimosso, e salvataggio o estrazione differita possono continuare a leggerla
OnPassword è assegnato, ogni nuovo tentativo con password rifiutata riceve uno stream mappato e uno stato del parser freschiUsare
GetMappedFileInfo per confermare se il mapping è attivo e esaminare le statistiche correnti di vista e letture