Vlastnosť THotPDF.LinearizeOutput
Riadi, či sa novovytvorený dokument zapíše v linearizovanom usporiadaní podľa závislostí pre rýchle zobrazenie prvej stránky cez transport bajtového rozsahu HTTP
Deklarácie
// Delphi
property LinearizeOutput: Boolean;
// C++Builder
__property bool LinearizeOutput;
Predvolené
False
Rozvrhnutie výstupu
Pri povolení pred BeginDoc a EndDoc HotPDF vykoná ohraničený prechod rozvrhovania a potom zapíše cieľový stream priamo v linearizovanom poradí
- Slovník parametrov linearizácie je obsiahnutý v prvých 1024 bajtoch
- Prvá stránka a jej súkromné závislosti predchádzajú neskorším sekciám stránok
- Zdieľané závislosti sú zoskupené, aby sa rozsahovo uvedomelé čítačky mohli vyhnúť nadbytočným požiadavkám
- Primárny hint stream obsahuje tabuľky hint pre ofsety stránok a zdieľané objekty
- Ranná tabuľka krížových referencií podporuje prístup k prvej stránke a hlavná tabuľka krížových referencií dokončuje dokument
Kompatibilita a limity
- Linearizácia vyžaduje PDF 1.2 alebo novšie; HotPDF inovuje staršiu vybranú verziu, pokiaľ nie je povolené
StrictVersionLock, v takom prípade zápis vyvolá výnimku - Linearizovaný zapisovač emituje tradičné textové tabuľky krížových referencií a rozbalené nepriame objekty aj vtedy, keď je povolené
UseXRefStreamaleboUseObjectStreams - Formát tabuliek hint používa 32-bitové ofsety, takže výstup na alebo nad 4 GiB je zamietnutý s jasnou výnimkou
- Webový server alebo transport úložiska musí podporovať požiadavky bajtového rozsahu na poskytnutie rýchleho doručenia prvej stránky
- Táto vlastnosť mení výstup generovaného dokumentu a nepostupne načítava existujúce vzdialené PDF
Príklad v 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;
Príklad v 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();