THotPDF.LinearizeOutput-Eigenschaft
Steuert, ob ein neu erzeugtes Dokument in einem abhängigkeitsgeordneten linearisierten Layout für schnelle Erstseitenanzeige über einen HTTP-Byte-Range-Transport geschrieben wird
Deklarationen
// Delphi
property LinearizeOutput: Boolean;
// C++Builder
__property bool LinearizeOutput;
Standardwert
False
Ausgabelayout
Wenn es vor BeginDoc und EndDoc aktiviert wird, führt HotPDF einen begrenzten Layoutdurchlauf durch und schreibt den Zielstrom dann direkt in linearisierter Reihenfolge
- Das Linearisierungs-Parameterwörterbuch ist in den ersten 1024 Bytes enthalten
- Die erste Seite und ihre privaten Abhängigkeiten gehen den späteren Seitenabschnitten voraus
- Gemeinsame Abhängigkeiten werden gruppiert, sodass Range-fähige Reader redundante Anforderungen vermeiden können
- Der primäre Hint-Stream enthält Seitenoffset- und Shared-Object-Hint-Tabellen
- Eine frühe Cross-Reference-Tabelle unterstützt den Zugriff auf die erste Seite und eine Haupt-Cross-Reference-Tabelle schließt das Dokument ab
Kompatibilität und Grenzen
- Linearisierung erfordert PDF 1.2 oder neuer; HotPDF aktualisiert eine ältere ausgewählte Version, es sei denn,
StrictVersionLockist aktiviert, in welchem Fall das Schreiben eine Ausnahme auslöst - Der linearisierte Writer gibt traditionelle Text-Cross-Reference-Tabellen und entpackte indirekte Objekte aus, selbst wenn
UseXRefStreamoderUseObjectStreamsaktiviert ist - Das Hint-Tabellen-Format verwendet 32-Bit-Offsets, daher wird eine Ausgabe ab 4 GiB mit einer klaren Ausnahme abgelehnt
- Der Webserver oder Speichertransport muss Byte-Range-Anforderungen unterstützen, um eine schnelle Erstseiten-Auslieferung zu ermöglichen
- Diese Eigenschaft ändert die Ausgabe erzeugter Dokumente und lädt nicht progressiv ein vorhandenes entferntes PDF
Delphi-Beispiel
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-Beispiel
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();