THotPDF.LinearizeOutput-egenskab
Styrer, om et nygenereret dokument skrives i et afhængighedsordnet lineariseret layout til hurtig første-side-visning over en HTTP byte-område-transport
Deklarationer
// Delphi
property LinearizeOutput: Boolean;
// C++Builder
__property bool LinearizeOutput;
Standard
False
Output-layout
Når den aktiveres før BeginDoc og EndDoc, udfører HotPDF en afgrænset layout-gennemløb og skriver derefter destinationstrømmen direkte i lineariseret rækkefølge
- Lineariseringsparameter-ordbogen er indeholdt i de første 1024 bytes
- Den første side og dens private afhængigheder går forud for senere side-sektioner
- Delte afhængigheder er grupperet, så område-bevidste læsere kan undgå overflødige anmodninger
- Den primære hint-strøm indeholder side-forskydnings- og delt-objekt-hint-tabeller
- En tidlig krydsreferencetabel understøtter første-side-adgang, og en hoved-krydsreferencetabel fuldfører dokumentet
Kompatibilitet og grænser
- Linearisering kræver PDF 1.2 eller senere; HotPDF opgraderer en ældre valgt version, medmindre
StrictVersionLocker aktiveret, i hvilket tilfælde skrivning rejser en undtagelse - Den lineariserede skriver udsender traditionelle tekst-krydsreferencetabeller og udpakkede indirekte objekter, selv når
UseXRefStreamellerUseObjectStreamser aktiveret - Hint-tabelformatet bruger 32-bit forskydninger, så output ved eller over 4 GiB afvises med en tydelig undtagelse
- Webserveren eller lagrings-transporten skal understøtte byte-område-anmodninger for at levere hurtig første-side-levering
- Denne egenskab ændrer genereret-dokument-output og indlæser ikke progressivt en eksisterende fjern-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();