THotPDF.LinearizeOutput-eigenschap
Beheert of een nieuw gegenereerd document wordt geschreven in een afhankelijkheidsgeordende gelineariseerde lay-out voor snelle eerste-pagina-weergave over een HTTP-byte-range-transport
Declaraties
// Delphi
property LinearizeOutput: Boolean;
// C++Builder
__property bool LinearizeOutput;
Standaard
False
Uitvoerlay-out
Wanneer ingeschakeld vóór BeginDoc en EndDoc voert HotPDF een begrensde lay-out-pass uit en schrijft dan de bestemmingsstroom direct in gelineariseerde volgorde
- Het linearisatie-parameterdictionary bevindt zich in de eerste 1024 bytes
- De eerste pagina en zijn privé-afhankelijkheden gaan vooraf aan latere paginasecties
- Gedeelde afhankelijkheden worden gegroepeerd zodat range-bewuste lezers overbodige verzoeken kunnen vermijden
- De primaire hintstroom bevat pagina-offset- en gedeeld-object-hint-tabellen
- Een vroege cross-reference-tabel ondersteunt eerste-pagina-toegang en een hoofd-cross-reference-tabel rondt het document af
Compatibiliteit en limieten
- Linearisatie vereist PDF 1.2 of later; HotPDF upgradeert een oudere geselecteerde versie tenzij
StrictVersionLockis ingeschakeld, in welk geval schrijven een uitzondering genereert - De gelineariseerde schrijver zendt traditionele tekst-cross-reference-tabellen en uitgepakte indirecte objecten uit, zelfs wanneer
UseXRefStreamofUseObjectStreamsis ingeschakeld - Het hint-tabel-formaat gebruikt 32-bit offsets, dus uitvoer op of boven 4 GiB wordt afgewezen met een duidelijke uitzondering
- De webserver of opslagtransport moet byte-range-verzoeken ondersteunen om snelle eerste-pagina-levering te bieden
- Deze eigenschap wijzigt gegenereerde-document-uitvoer en laadt niet progressief een bestaande externe PDF
Delphi-voorbeeld
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-voorbeeld
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();