THotPDF.UseObjectStreams Property

 

THotPDF.UseObjectStreams

THotPDF

 

Överst  Föregående  Nästa

Packar kvalificerade indirekta objekt i PDF 1.5-containerströmmar av typen /Type /ObjStm (ISO 32000-1 7.5.7) för att minska PDF-storleken på disk

 

Delphi-syntax:

property UseObjectStreams: Boolean;

 

C++-syntax:

__property bool UseObjectStreams;

 

Beskrivning

När UseObjectStreams är true (och UseXRefStream också är true) packar EndDoc varje kvalificerat indirekt objekt - ordböcker, arrayer, tal, namn, strängar, booleska värden, null - i en eller flera /Type /ObjStm-containerströmmar enligt ISO 32000-1 7.5.7. Korsreferensströmmen refererar sedan de packade objekten via typ 2-poster (värd-ObjStm-objektnummer + postindex i den strömmen), så individuella N G obj ... endobj-ramningsbyte och textuella xref-rader elimineras

 

Samverkar naturligt med egenskapen UseXRefStream för den mest kompakta PDF 1.5+-skrivarpipelinen. ObjStm-packaren lämnar strömobjekt, krypteringsordboken samt de trailerpekade Catalog- och Info-ordböckerna okomprimerade så att även minimala PDF-parsers fortfarande kan hitta dokumentrötter och dekryptera innehåll

 

Standardvärde: false (opt-in).

Att sätta UseObjectStreams till true nedgraderas tyst till false när UseXRefStream är av (typ 2-poster kan inte representeras i den textuella xref-tabellen enligt specifikationen) eller när Version är lägre än PDF 1.5

 

Kodexempel

HPDF := THotPDF.Create( nil );
try
  HPDF.FileName := 'c:\Output.pdf';
  HPDF.Version := pdf15;          // Object streams require PDF 1.5+
  HPDF.UseXRefStream := true;     // ObjStm references need a /Type /XRef stream
  HPDF.UseObjectStreams := true;  // Pack indirect objects into /Type /ObjStm
  HPDF.Compression := cmFlateDecode;
  HPDF.BeginDoc;
  HPDF.CurrentPage.TextOut( 100, 100, 0, 'Compact PDF 1.5 output' );
  HPDF.EndDoc;
finally
  HPDF.Free;
end;

 

Storleksminskning

I dokument som domineras av små indirekta ordböcker (flersidiga dokument, annoteringar, AcroForm-widgetar, strukturträdelement, Optional Content-lager) är besparingen normalt 20-40% av filstorleken efter FlateDecode. Ett 30-sidigt grafikbaserat smoke-test krymper från 14502 byte till 8488 byte (-41.5%)

 

Se även

UseXRefStream, Compression, Version, PDF Filter Support