|
THotPDF.UseObjectStreams
|
Oben Zurück Weiter |
|
Packt geeignete indirekte Objekte in PDF 1.5
Delphi-Syntax: property UseObjectStreams: Boolean;
C++-Syntax: __property bool UseObjectStreams;
Beschreibung Wenn UseObjectStreams auf true gesetzt ist (und UseXRefStream ebenfalls true ist), packt EndDoc jedes geeignete indirekte Objekt — Wörterbücher, Arrays, Zahlen, Namen, Zeichenketten, Booleans, Nullwerte — in einen oder mehrere
Lässt sich optimal mit der Eigenschaft UseXRefStream kombinieren, um die kompakteste PDF 1.5+ Writer-Pipeline zu erhalten; der ObjStm-Packer lässt Stream-Objekte, das Verschlüsselungs-Wörterbuch sowie die vom Trailer referenzierten Catalog- und Info-Wörterbücher unkomprimiert, sodass selbst minimale PDF-Parser weiterhin Dokumentwurzeln lokalisieren und Inhalte entschlüsseln können
Standardwert: false (Opt-in) Das Setzen von UseObjectStreams auf true wird stillschweigend auf false herabgestuft, wenn UseXRefStream deaktiviert ist (Typ-2-Einträge können laut Spezifikation in der textuellen xref-Tabelle nicht dargestellt werden) oder wenn Version niedriger als PDF 1.5 ist
Unter PDF/A-1 wird es ebenfalls erzwungen deaktiviert: ISO 19005-1 (PDF 1.4, Klausel 6.1.4) verbietet komprimierte Objekt-Streams zusammen mit den Cross-Reference-Streams, auf denen sie aufbauen, sodass EndDoc immer dann eine klassische xref-Tabelle ausgibt, wenn PDFACompliance ein Part-1-Level angibt, während PDF/A-2 und PDF/A-3 (PDF 1.7) diese Option verfügbar halten
Code Example
Größenreduzierung Bei Dokumenten, die von kleinen indirekten Wörterbüchern dominiert werden (mehrseitige Dokumente, Anmerkungen, AcroForm-Widgets, Strukturbaum-Elemente, optionale Inhaltsebenen), beträgt die Ersparnis typischerweise 20-40 % der Dateigröße nach der FlateDecode-Komprimierung; ein 30-seitiger reiner Grafik-Smoketest schrumpft von 14502 Bytes auf 8488 Bytes (-41,5 %)
Siehe auch UseXRefStream, Compression, Version, PDF Filter Support
|