Vlastnost THotPDF.LinearizeOutput
Řídí, zda je nově generovaný dokument zapsán v linealizovaném rozvržení seřazeném podle závislostí pro rychlé zobrazení první stránky přes HTTP byte-range transport
Deklarace
// Delphi
property LinearizeOutput: Boolean;
// C++Builder
__property bool LinearizeOutput;
Výchozí
False
Rozvržení výstupu
Při zapnutí před BeginDoc a EndDoc provede HotPDF ohraničený průchod rozvržením a poté zapíše cílový proud přímo v linealizovaném pořadí
- Slovník parametrů linearizace je obsažen v prvních 1024 bajtech
- První stránka a její privátní závislosti předcházejí pozdější sekce stránek
- Sdílené závislosti jsou seskupeny, takže čtečky s ohledem na rozsah se mohou vyhnout redundantním požadavkům
- Primární proud tipů obsahuje tabulky tipů offsetů stránek a sdílených objektů
- Raná tabulka křížových referencí podporuje přístup na první stránku a hlavní tabulka křížových referencí dokončuje dokument
Kompatibilita a limity
- Linearizace vyžaduje PDF 1.2 nebo novější; HotPDF povýší starší vybranou verzi, pokud není zapnuto
StrictVersionLock, v takovém případě zápis vyvolá výjimku - Linearizovaný zapisovač emituje tradiční textové tabulky křížových referencí a rozbalené nepřímé objekty i tehdy, když je zapnuto
UseXRefStreamneboUseObjectStreams - Formát tabulky tipů používá 32bitové offsety, takže výstup na úrovni nebo nad 4 GiB je odmítnut s jasnou výjimkou
- Webový server nebo transport úložiště musí podporovat byte-range požadavky pro rychlé dodání první stránky
- Tato vlastnost mění výstup generovaného dokumentu a neprovádí progresivní načítání existujícího vzdáleného PDF
Pří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;
Pří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();