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

FileNameIl percorso del PDF locale
PasswordLa password usata per aprire il PDF, oppure una stringa vuota per un documento non cifrato
WindowSizeLa 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
OptionsZero 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

0Gli 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
1Il 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