TStream Pascal posicionável para a estrutura de callback FPDF_FILEACCESS do PDFium
constructor Create(AStream: TStream; AOwnsStream: Boolean = False);
constructor Create(AStream: TStream; AFileSize: UInt64; AOwnsStream: Boolean);
destructor Destroy; override;
property Stream: TStream read FStream;
property OwnsStream: Boolean read FOwnsStream;
property FileSize: UInt64 read FFileSize;
property FileAccess: FPDF_FILEACCESS read FFileAccess;
| Member | Description |
|---|---|
Create | Envolve um TStream posicionável, opcionalmente fornece um tamanho lógico de arquivo diferente do armazenamento atual e, opcionalmente, transfere a propriedade do stream para o adaptador |
Destroy | Libera o estado do adaptador e libera Stream quando OwnsStream é True |
Stream | Stream subjacente passado ao construtor |
OwnsStream | True quando o adaptador deve liberar o stream em Destroy |
FileSize | Tamanho lógico exposto por meio de FPDF_FILEACCESS, incluindo bytes ainda não presentes durante o carregamento progressivo |
FileAccess | Record de callback do PDFium adequado para FPDF_LoadCustomDocument |
TPdfStreamAdapter permite que o PDFium solicite intervalos de bytes de um stream sob demanda em vez de copiar o PDF inteiro para a memória antes do carregamento
O stream deve oferecer suporte a posicionamento e deve permanecer vivo enquanto o FPDF_DOCUMENT carregado puder ler do adaptador
TPdf.LoadCustomDocument usa o mesmo caminho de adaptador para a API de componente de alto nível
Adapter := TPdfStreamAdapter.Create(FileStream, True);
Document := FPDF_LoadCustomDocument(@Adapter.FileAccess, nil);