THPDFLinearizedPageRangePlan Record
Der Byte-Range-Plan zum progressiven Lesen einer Seite einer linearisierten Datei: Status und Diagnose, geparste Header-Offsets, Seitenobjekt-Fakten, Hint-Strom-Platzierung, Shared-Group-Fakten, Transfer-Summen und die geordneten Bytebereiche
Deklaration
THPDFLinearizedPageRangePlan= record
Status: THPDFLinearizedPagePlanStatus;
FileLength: Int64;
PageIndex: Integer;
FirstPageIndex: Integer;
PageCount: Integer;
FirstPageEndOffset: Int64;
MainXRefOffset: Int64;
PageObjectNumber: Integer;
PageObjectCount: Integer;
PageOffset: Int64;
PageLength: Int64;
PrimaryHintOffset: Int64;
PrimaryHintLength: Int64;
OverflowHintOffset: Int64;
OverflowHintLength: Int64;
SharedGroupCount: Integer;
CrossReferenceEntryCount: Integer;
HintBytesDecoded: Int64;
RequiredBytes: Int64;
TransferRatio: Double;
RangeCount: Integer;
DependencyRangeCount: Integer;
AllRangesAvailable: boolean;
UsesCrossReferenceStream: boolean;
HintEncoding: THPDFLinearizedHintEncoding;
Ranges: THPDFLinearizedByteRangeArray;
DependencyRanges: THPDFLinearizedByteRangeArray;
Diagnostic: AnsiString;
end;
Unit
HPDFDoc
Felder
| Feld | Zweck |
|---|---|
Status | THPDFLinearizedPagePlanStatus-Ergebnis: ready, nicht linearisiert, nicht unterstützte Cross-Reference, Grenzen überschritten oder Bereiche nicht verfügbar |
FileLength | Gesamtgröße der geplanten Quelle |
PageIndex | Angeforderte nullbasierte Seite, oder -1 für reine Header-Bootstrap-Pläne |
FirstPageIndex / PageCount | First-Page-Index und Seitenanzahl, geparst aus dem Linearization-Header |
FirstPageEndOffset / MainXRefOffset | Die /E- und /T-Werte des Headers: Ende der First-Page-Sektion und Offset der Haupt-Cross-Reference |
PageObjectNumber / PageObjectCount | Objektnummer der angeforderten Seite und Anzahl der Objekte in ihrer Objektliste |
PageOffset / PageLength | Bytebereich der Sektion der Seite in der Datei |
PrimaryHintOffset / PrimaryHintLength | Platzierung des primären Hint-Stroms |
OverflowHintOffset / OverflowHintLength | Platzierung des Overflow-Hint-Stroms, null und leer, wenn es keinen gibt |
SharedGroupCount / CrossReferenceEntryCount | Für die Seite geplante Shared-Object-Gruppen und vom Plan abgedeckte Cross-Reference-Einträge |
HintBytesDecoded | Tatsächlich beim Planungsaufbau dekodierte Hint-Nutzdaten-Bytes |
RequiredBytes | Gesamtbytes, die übertragen werden müssen, um die Seite zu rendern |
TransferRatio | RequiredBytes geteilt durch FileLength; null bei gescheiterter Planung |
RangeCount / DependencyRangeCount | Anzahl der Einträge in Ranges und in DependencyRanges |
AllRangesAvailable | true, wenn jeder geplante Bereich in der Random-Access-Quelle vorhanden ist |
UsesCrossReferenceStream | true, wenn der Plan gegen einen Cross-Reference-Stream statt einer klassischen Tabelle gebaut wurde |
HintEncoding | Im Hint-Strom erkanntes THPDFLinearizedHintEncoding-Layout |
Ranges | Geordnete Bytebereiche, die für die angeforderte Seite zu holen sind, je nach Optionen einschließlich Bootstrap- und Cross-Reference-Bereichen |
DependencyRanges | Bytebereiche der Shared Objects, von denen die Seite abhängt |
Diagnostic | Fail-closed-Grundtext, wenn Status einen Fehlschlag meldet |
Verwendungshinweise
- Fordern Sie je Seite einen über
THotPDF.PlanProgressiveLinearizedPageRangesan; prüfen SieStatus, bevor Sie irgendeinem anderen Feld vertrauen - Holen Sie zuerst
Rangesfür den schnellsten First Paint, dannDependencyRanges, wenn Shared Objects gebraucht werden; der Redraw-Scheduler verarbeitet den Plan genau in dieser Reihenfolge - Nutzen Sie
TransferRatioundRequiredBytes, um den Bandbreitenbedarf abzuschätzen, bevor Sie sich auf progressive Auslieferung festlegen