LoadFromMappedFile
Gestão de documentos, desempenho, entrada de ficheiros
Descrição
Carrega e seleciona um PDF local através de uma vista mapeada só de leitura e delimitada, permitindo que leituras grandes e diferidas de objetos e fluxos reutilizem páginas de ficheiro do sistema operativo sem reter a origem completa em memória
Sintaxe
Delphi
Function TPDFlib.LoadFromMappedFile(Const FileName, Password: WideString;
WindowSize: Int64= 0; Options: Integer= 0): Integer;Parâmetros
| FileName | O caminho do PDF local |
|---|---|
| Password | A senha usada para abrir o PDF, ou uma cadeia vazia para um documento não encriptado |
| WindowSize | O tamanho pedido da vista mapeada em bytes; zero seleciona 64 MiB, valores abaixo da granularidade de alocação do sistema operativo são elevados a essa granularidade e valores acima de 1 GiB são limitados |
| Options | Zero permite um fallback de fluxo de ficheiro só de leitura, enquanto PDF_MAPPED_FILE_REQUIRE_MAPPING falha a menos que uma vista mapeada esteja ativa |
Valores devolvidos
| 0 | Os argumentos eram inválidos, o ficheiro não pôde ser aberto, o mapeamento exigido estava indisponível ou o PDF não pôde ser carregado; inspecione LastErrorCode |
|---|---|
| 1 | O documento foi carregado e selecionado |
Observações
As compilações Windows retêm uma vista só de leitura e remapeiam-na a pedido nos limites da granularidade de alocação; as outras plataformas e as falhas de mapeamento usam o mesmo contrato de leitura absoluta sobre um fluxo de ficheiro normal só de leitura, salvo se o mapeamento for exigidoA vista predefinida de 64 MiB limita a utilização do espaço de endereçamento independentemente do tamanho da origem e é adequada para acesso disperso a ficheiros locais grandes; uma vista menor pode reduzir o espaço de endereçamento residente à custa de mais remapeamentosAs leituras absolutas de fatias de objetos copiam diretamente da vista atual para armazenamento pertencente ao analisador sem alterar o cursor posicional do fluxo; esta não é uma API de ponteiros zero-copy persistente, porque o remapeamento invalida endereços de vistaA origem permanece aberta até o documento carregado ser removido, e a gravação ou a extração diferida podem continuar a lê-laSe
OnPassword estiver atribuído, cada repetição de senha rejeitada recebe um fluxo mapeado e um estado de analisador novos. Use
GetMappedFileInfo para confirmar se o mapeamento está ativo e inspecionar as estatísticas atuais de vista e de leitura