THotPDF.UseObjectStreams Property

 

THotPDF.UseObjectStreams

THotPDF

 

Boven  Vorige  Volgende

Pak geschikte indirecte objecten in PDF 1.5 /Type /ObjStm-containerstromen (ISO 32000-1 7.5.7) om de PDF-grootte op schijf te verkleinen

 

Delphi-syntaxis:

property UseObjectStreams: Boolean;

 

C++-syntaxis:

__property bool UseObjectStreams;

 

Beschrijving

Wanneer UseObjectStreams op true staat en UseXRefStream ook true is, pakt EndDoc elk geschikt indirect object - woordenboeken, arrays, getallen, namen, tekenreeksen, booleans, nulls - in een of meer /Type /ObjStm-containerstromen volgens ISO 32000-1 7.5.7. De cross-reference stream verwijst daarna naar de ingepakte objecten via type-2-vermeldingen (het objectnummer van de host-ObjStm + de index van de vermelding in die stream), zodat afzonderlijke N G obj ... endobj-framingbytes en tekstuele xref-vermeldingen per rij verdwijnen

 

Past natuurlijk bij de UseXRefStream-eigenschap voor de meest compacte schrijfketen van PDF 1.5+. De ObjStm-pakker laat stroomobjecten, de versleutelingswoordenboek en de door de trailer aangewezen Catalog- en Info-woordenboeken ongecomprimeerd, zodat zelfs minimale PDF-parsers nog documentwortels kunnen vinden en inhoud kunnen ontsleutelen

 

Standaardwaarde: false (opt-in)

Wanneer UseObjectStreams op true wordt gezet, valt de instelling stilzwijgend terug naar false wanneer UseXRefStream uit staat (type-2-vermeldingen zijn volgens de specificatie niet te representeren in de tekstuele xref-tabel) of wanneer Version onder PDF 1.5 ligt

 

Codevoorbeeld

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

Bij documenten die vooral uit kleine indirecte woordenboeken bestaan (meerpagina-documenten, annotaties, AcroForm-widgets, structure-tree-elementen, Optional Content-lagen) bedraagt de besparing doorgaans 20-40% van de bestandsgrootte na FlateDecode. Een graphics-only smoke test van 30 pagina's krimpt van 14502 bytes naar 8488 bytes (-41.5%)

 

Zie ook

UseXRefStream, Compression, Version, PDF-filterondersteuning