THotPDF.LinearizeOutput savybė
Valdo, ar naujai sugeneruotas dokumentas įrašomas nuo priklausomybių priklausančiu linijiniu išdėstymu, skirtu greitam pirmojo puslapio rodymui per HTTP baitų intervalų perdavimo kanalą
Deklaracijos
// Delphi
property LinearizeOutput: Boolean;
// C++Builder
__property bool LinearizeOutput;
Numatymas
False
Išvesties išdėstymas
Įjungus prieš BeginDoc ir EndDoc, HotPDF atlieka ribotą išdėstymo eigą, tada įrašo paskirties srautą tiesiogiai linijine tvarka
- Linijavimo parametro žodynas yra pirmuose 1024 baituose
- Pirmasis puslapis ir jo privačios priklausomybės eina prieš vėlesnes puslapių sekcijas
- Bendros priklausomybės sugrupuotos, kad intervalus žinantys skaitytuvai galėtų išvengti nereikalingų užklausų
- Pirminis patarimų srautas saugo puslapio poslinkių ir bendrų objektų patarimų lenteles
- Ankstyva kryžminių nuorodų lentelė palaiko pirmojo puslapio prieigą, o pagrindinė kryžminių nuorodų lentelė užbaigia dokumentą
Suderinamumas ir limitai
- Linijavimas reikalauja PDF 1.2 ar naujesnio; HotPDF atnaujina senesnę pasirinktą versiją, nebent
StrictVersionLockįjungtas, kuriuo atveju įrašymas kelia išimtį - Linijinis rašytuvas išleidžia tradicines teksto kryžminių nuorodų lenteles ir neišpakuotus netiesioginius objektus net tada, kai
UseXRefStreamarbaUseObjectStreamsįjungtas - Patarimų lentelės formatas naudoja 32 bitų poslinkius, todėl išvestis, lygi ar viršijanti 4 GiB, atmetama su aiškia išimtimi
- Tinklalapio serveris arba saugyklos perdavimo kanalas turi palaikyti baitų intervalų užklausas greitam pirmojo puslapio pristatymui
- Ši savybė keičia generuoto dokumento išvestį ir neįkelia progresyviai esamo nuotolinio PDF
Delphi pavyzdys
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;
C++Builder pavyzdys
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();