Proprietatea THotPDF.LinearizeOutput
Controlează dacă un document nou-generat este scris într-un layout liniarizat ordonat după dependențe, pentru afișare rapidă a primei pagini printr-un transport HTTP pe intervale de octeți
Declarații
// Delphi
property LinearizeOutput: Boolean;
// C++Builder
__property bool LinearizeOutput;
Implicit
False
Layout de ieșire
Când este activată înainte de BeginDoc și EndDoc, HotPDF efectuează o trecere limitată de layout și apoi scrie fluxul de destinație direct în ordine liniarizată
- Dicționarul de parametri de liniarizare este conținut în primii 1024 octeți
- Prima pagină și dependențele sale private preced secțiunile paginilor ulterioare
- Dependențele partajate sunt grupate astfel încât cititoarele conștiente de intervale să poată evita cererile redundante
- Fluxul principal de indicii conține tabele de indicii pentru offset-uri de pagină și obiecte partajate
- Un tabel de referințe încrucișate timpuriu suportă accesul la prima pagină, iar un tabel principal de referințe încrucișate completează documentul
Compatibilitate și limite
- Liniarizarea necesită PDF 1.2 sau mai nou; HotPDF actualizează o versiune selectată mai veche, cu excepția cazului în care este activat
StrictVersionLock, situație în care scrierea ridică o excepție - Scriitorul liniarizat emite tabele de referințe încrucișate tradiționale textuale și obiecte indirecte despachetate chiar și când
UseXRefStreamsauUseObjectStreamseste activat - Formatul de tabele de indicii folosește offset-uri pe 32 de biți, deci ieșirea la sau peste 4 GiB este respinsă cu o excepție clară
- Serverul web sau transportul de stocare trebuie să suporte cereri de intervale de octeți pentru a oferi livrare rapidă a primei pagini
- Această proprietate modifică ieșirea documentului generat și nu încarcă progresiv un PDF remote existent
Exemplu 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;
Exemplu 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();