THotPDF.LinearizeOutput-egenskap
Styrer om et nylig generert dokument skrives i en avhengighetsordnet linearisert layout for rask første-side-visning over en HTTP byte-område-transport
Deklarasjoner
// Delphi
property LinearizeOutput: Boolean;
// C++Builder
__property bool LinearizeOutput;
Standard
False
Utdatalayout
Når aktivert før BeginDoc og EndDoc, utfører HotPDF et avgrenset layout-passer og skriver deretter målstrømmen direkte i linearisert rekkefølge
- Lineariseringsparameter-ordboken er inneholdt i de første 1024 bytene
- Den første siden og dens private avhengigheter går foran senere side-seksjoner
- Delte avhengigheter grupperes slik at område-bevisste lesere kan unngå overflødige forespørsler
- Den primære hint-strømmen inneholder side-avstands- og delt-objekt-hint-tabeller
- En tidlig kryssreferanse-tabell støtter første-side-tilgang og en hoved kryssreferanse-tabell fullfører dokumentet
Kompatibilitet og grenser
- Linearisering krever PDF 1.2 eller senere; HotPDF oppgraderer en eldre valgt versjon med mindre
StrictVersionLocker aktivert, i så fall opphever skriving et unntak - Den lineariserte skriveren sender ut tradisjonelle tekst kryssreferanse-tabeller og utpakkede indirekte objekter selv når
UseXRefStreamellerUseObjectStreamser aktivert - Hint-tabell-formatet bruker 32-bits avstander, så utdata på eller over 4 GiB avvises med et tydelig unntak
- Nettserveren eller lagringstransporten må støtte byte-område-forespørsler for å gi rask første-side-levering
- Denne egenskapen endrer generert-dokument-utdata og laster ikke progressivt en eksisterende ekstern PDF
Delphi-eksempel
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-eksempel
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();