THotPDF.LinearizeOutput Property
Controlla se un documento appena generato viene scritto in un layout linearizzato ordinato per dipendenza per la visualizzazione rapida della prima pagina su un trasporto HTTP a intervalli di byte
Dichiarazioni
// Delphi
property LinearizeOutput: Boolean;
// C++Builder
__property bool LinearizeOutput;
Predefinito
False
Layout di output
Quando abilitata prima di BeginDoc ed EndDoc, HotPDF esegue un passaggio di layout limitato e quindi scrive il flusso di destinazione direttamente in ordine linearizzato
- Il dizionario dei parametri di linearizzazione è contenuto nei primi 1024 byte
- La prima pagina e le sue dipendenze private precedono le sezioni delle pagine successive
- Le dipendenze condivise sono raggruppate così che i lettori con supporto degli intervalli possano evitare richieste ridondanti
- Il flusso di suggerimenti principale contiene le tabelle di suggerimenti per offset di pagina e oggetti condivisi
- Una tabella di riferimenti incrociati anticipata supporta l'accesso alla prima pagina e una tabella di riferimenti incrociati principale completa il documento
Compatibilità e limiti
- La linearizzazione richiede PDF 1.2 o successivo; HotPDF aggiorna una versione selezionata più vecchia a meno che
StrictVersionLocknon sia abilitato, nel qual caso la scrittura solleva un'eccezione - Il writer linearizzato emette tabelle di riferimenti incrociati testuali tradizionali e oggetti indiretti decompressi anche quando
UseXRefStreamoUseObjectStreamsè abilitato - Il formato delle tabelle di suggerimenti utilizza offset a 32 bit, pertanto l'output uguale o superiore a 4 GiB viene rifiutato con un'eccezione chiara
- Il server web o il trasporto di archiviazione deve supportare richieste di intervalli di byte per fornire una consegna rapida della prima pagina
- Questa proprietà modifica l'output del documento generato e non carica progressivamente un PDF remoto esistente
Esempio 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;
Esempio 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();