Propriedade THotPDF.LinearizeOutput
Controla se um documento recém-gerado é escrito numa disposição linearizada ordenada por dependência, para apresentação rápida da primeira página sobre um transporte HTTP por intervalos de bytes
Declarações
// Delphi
property LinearizeOutput: Boolean;
// C++Builder
__property bool LinearizeOutput;
Predefinição
False
Disposição de saída
Quando ativado antes de BeginDoc e EndDoc, o HotPDF efetua uma passagem de disposição limitada e, em seguida, escreve o fluxo de destino diretamente por ordem linearizada
- O dicionário de parâmetros de linearização está contido nos primeiros 1024 bytes
- A primeira página e as suas dependências privadas precedem as secções de páginas posteriores
- As dependências partilhadas são agrupadas para que os leitores com reconhecimento de intervalos possam evitar pedidos redundantes
- O fluxo de sugestões principal contém tabelas de sugestões de desvio de página e de objetos partilhados
- Uma tabela de referência cruzada precoce suporta o acesso à primeira página e uma tabela de referência cruzada principal completa o documento
Compatibilidade e limites
- A linearização requer PDF 1.2 ou posterior; o HotPDF atualiza uma versão selecionada mais antiga a menos que
StrictVersionLockesteja ativado, caso em que a escrita gera uma exceção - O escritor linearizado emite tabelas de referência cruzada tradicionais em texto e objetos indiretos desempacotados mesmo quando
UseXRefStreamouUseObjectStreamsestá ativado - O formato das tabelas de sugestões utiliza desvios de 32 bits, pelo que a saída igual ou superior a 4 GiB é rejeitada com uma exceção clara
- O servidor web ou o transporte de armazenamento tem de suportar pedidos por intervalos de bytes para fornecer entrega rápida da primeira página
- Esta propriedade altera a saída do documento gerado e não carrega progressivamente um PDF remoto existente
Exemplo em Delphi
PDF := THotPDF.Create(nil);
try
PDF.FileName := 'fast-view.pdf';
PDF.Version := pdf17;
PDF.LinearizeOutput := True;
PDF.BeginDoc;
PDF.Canvas.TextOut(72, 72, 'First page');
PDF.EndDoc;
finally
PDF.Free;
end;
Exemplo em C++Builder
std::unique_ptr<THotPDF> pdf(new THotPDF(nullptr));
pdf->FileName = L"fast-view.pdf";
pdf->Version = pdf17;
pdf->LinearizeOutput = true;
pdf->BeginDoc();
pdf->Canvas->TextOut(72, 72, L"First page");
pdf->EndDoc();