THotPDF.UseObjectStreams Property

 

THotPDF.UseObjectStreams

THotPDF

 

Sus  Anterior  Următor

Grupează obiectele indirecte eligibile în fluxuri container PDF 1.5 /Type /ObjStm (ISO 32000-1 7.5.7) pentru a reduce dimensiunea PDF-ului pe disc

 

Delphi syntax:

property UseObjectStreams: Boolean;

 

C++ syntax:

__property bool UseObjectStreams;

 

Descriere

Când UseObjectStreams este true și UseXRefStream este tot true, EndDoc grupează fiecare obiect indirect eligibil - dicționare, tablouri, numere, nume, șiruri, valori booleene, valori null - în unul sau mai multe fluxuri container /Type /ObjStm conform ISO 32000-1 7.5.7. Fluxul de cross-reference face apoi trimitere la obiectele împachetate prin intrări de tip 2 (numărul obiectului gazdă ObjStm + indexul intrării din acel flux), astfel încât cadrele individuale N G obj ... endobj și intrările textuale xref pe rând sunt eliminate

 

Se potrivește firesc cu proprietatea UseXRefStream pentru cel mai compact flux de scriere PDF 1.5+. Împachetatorul ObjStm lasă necomprimat obiectele stream, dicționarul de criptare și dicționarele Catalog și Info indicate de trailer, astfel încât și analizatoarele PDF minimale să poată găsi rădăcinile documentului și să decripteze conținutul

 

Valoare implicită: false (activare opțională)

Setarea UseObjectStreams la true revine în tăcere la false când UseXRefStream este oprit (intrările de tip 2 nu pot fi reprezentate în tabela xref textuală conform specificației) sau când Version este sub PDF 1.5

 

Exemplu de cod

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;

 

Size reduction

La documentele dominate de dicționare indirecte mici (documente cu mai multe pagini, adnotări, widget-uri AcroForm, elemente de arbore de structură, straturi Optional Content) economia este de obicei 20-40% din dimensiunea fișierului după FlateDecode. Un smoke test grafic de 30 de pagini scade de la 14502 bytes la 8488 bytes (-41.5%)

 

See Also

UseXRefStream, Compression, Version, PDF Filter Support