THotPDF.UseObjectStreams-egenskab

 

THotPDF.UseObjectStreams

THotPDF

 

Øverst  Forrige  Næste
Placeholder for topic body

Pak kvalificerede indirekte objekter ind i PDF 1.5/Type /ObjStmcontainerstreams (ISO 32000-1 7.5.7) for at reducere PDF-størrelsen på disken

 

Delphi-syntaks:

property UseObjectStreams: Boolean;

 

C++-syntaks:

__property bool UseObjectStreams;

 

Beskrivelse

Når UseObjectStreams er true og UseXRefStream også er true, pakker EndDoc alle kvalificerede indirekte objekter - ordbøger, arrays, tal, navne, strenge, booleans og nulls - ind i en eller flere /Type /ObjStm-containerstreams i henhold til ISO 32000-1 7.5.7. Krydsreferencestreamen refererer derefter til de pakkede objekter gennem type-2-poster (værtens ObjStm-objektnummer + postindeks inde i den stream), så individuelle N G obj ... endobj-indramningsbytes og tekstmæssige xref-poster pr. række elimineres

 

Parres naturligt medUseXRefStreamegenskab for at opnå den mest kompakte PDF 1.5+ forfatter-pipeline. ObjStm-pakkeren efterlader streamobjekter, krypteringsordbogen og Catalog- og Info-ordbøgerne, der peger på traileren, ukomprimerede, så selv minimale PDF-parsere stadig kan finde dokumentrødder og dekryptere indhold

 

Standardværdi: false (opt-in)

Indstilling af UseObjectStreams til true nedgraderes lydløst til false, når UseXRefStream er slået fra (type-2-poster kan ikke repræsenteres i den tekstmæssige xref-tabel pr. specifikation), eller nårVersioner under PDF 1.5

 

Det er også tvunget fra under PDF/A-1: ISO 19005-1 (PDF 1.4, punkt 6.1.4) forbyder komprimerede objektstreams sammen med de krydsreferencestreams, de kører på, så EndDoc udsender en klassisk xref-tabel, hver gangPDFACompliancenavngiver et del-1-niveau, mens PDF/A-2 og PDF/A-3 (PDF 1.7) lader det være tilgængeligt

 

Kodeeksempel

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;

 

Størrelsesreduktion

På dokumenter, der domineres af små indirekte ordbøger (flersidede dokumenter, annotationer, AcroForm-widgets, strukturtræelementer, valgfri indholdslag), er besparelsen typisk 20-40 % af filstørrelsen efter FlateDecode. En 30-siders grafik-kun røgtest krymper fra 14502 bytes to 8488 bytes (-41.5 %)

 

Se også

UseXRefStream, Compression, Version, PDF-filterunderstøttelse