Egenskapen THotPDF.LinearizeOutput
Styr om ett nyligen genererat dokument skrivs i en beroendeordnad linjäriserad layout för snabb förstasidesvisning över en HTTP-byteintervalltransport
Deklarationer
// Delphi
property LinearizeOutput: Boolean;
// C++Builder
__property bool LinearizeOutput;
Standard
False
Utmatningslayout
När aktiverad före BeginDoc och EndDoc utför HotPDF ett bundet layoutpass och skriver sedan målströmmen direkt i linjäriserad ordning
- Linjäriseringsparameterordlistan finns i de första 1024 byten
- Den första sidan och dess privata beroenden föregår senare sidsektioner
- Delade beroenden grupperas så att intervallmedvetna läsare kan undvika redundanta begäranden
- Den primära ledströmmen innehåller sidoffset- och delat-objekt-ledtabeller
- En tidig korsreferenstabell stöder förstasidesåtkomst och en huvudkorsreferenstabell slutför dokumentet
Kompatibilitet och gränser
- Linjärisering kräver PDF 1.2 eller senare; HotPDF uppgraderar en äldre vald version såvida inte
StrictVersionLockär aktiverat, i vilket fall skrivning kastar ett undantag - Den linjäriserade skrivaren skriver ut traditionella textkorsreferenstabeller och uppackade indirekta objekt även när
UseXRefStreamellerUseObjectStreamsär aktiverat - Ledtabellformatet använder 32-bitars offset, så utmatning vid eller över 4 GiB avvisas med ett tydligt undantag
- Webbservern eller lagringstransporten måste stödja byteintervallbegäranden för att tillhandahålla snabb förstasidesleverans
- Den här egenskapen ändrar genererad dokumentutmatning och läser inte progressivt in en befintlig fjärr-PDF
Delphi-exempel
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-exempel
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();