THotPDF.UseObjectStreams-ominaisuus

THotPDF.UseObjectStreams

THotPDF

Ylös Edellinen Seuraava

Pakkaa kelvolliset epäsuorat objektit PDF 1.5 -tyyppisiin /Type /ObjStm -säiliövirtoihin (ISO 32000-1 7.5.7) PDF-tiedoston koon pienentämiseksi levyllä

Delphi syntax:

property UseObjectStreams: Boolean;

C++ syntax:

__property bool UseObjectStreams;

Kuvaus

Kun UseObjectStreams on true (ja myös UseXRefStream on true), metodi EndDoc pakkaa jokaisen soveltuvan epäsuoran objektin – sanakirjat, taulukot, luvut, nimet, merkkijonot, totuusarvot, null-arvot – yhteen tai useampaan /Type /ObjStm -säiliövirtaan standardin ISO 32000-1 7.5.7 mukaisesti. Ristiviitevirta viittaa sitten pakattuihin objekteihin tyypin 2 merkintöjen kautta (isäntänä toimivan ObjStm-objektin numero + merkinnän indeksi kyseisen virran sisällä), joten erilliset N G obj ... endobj -kehystystavut ja rivikohtaiset tekstimuotoiset xref-merkinnät eliminoidaan

Pariliittyy luonnollisesti ominaisuuden UseXRefStream kanssa kaikkein tiiviimmän PDF 1.5+ -kirjoitusputken saavuttamiseksi. ObjStm-pakkaaja jättää virtatyyppiset objektit, salaus-sanakirjan sekä trailerin osoittamat Catalog- ja Info-sanakirjat pakkaamatta, jotta jopa minimaaliset PDF-jäsentimet voivat edelleen paikantaa asiakirjan juuret ja purkaa sisällön salauksen

Oletusarvo: false (opt-in)

Asetuksen UseObjectStreams muuttaminen arvoksi true laskee sen hiljaisesti arvoksi false, kun UseXRefStream on poissa käytöstä (tyypin 2 merkintöjä ei voi esittää tekstimuotoisessa xref-taulukossa määrittelyn mukaan) tai kun Version on alle PDF 1.5

Se on myös pakotettu pois käytöstä standardin PDF/A-1 alla: ISO 19005-1 (PDF 1.4, lauseke 6.1.4) kieltää pakatut objektivirrat yhdessä niiden mukana kulkevien ristiviitevirtojen kanssa, joten EndDoc lähettää perinteisen xref-taulukon aina, kun PDFACompliance nimeää osan 1 tason, kun taas PDF/A-2 ja PDF/A-3 (PDF 1.7) jättävät sen käytettäväksi

Code Example

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

Asiakirjoissa, joissa hallitsevat pienet epäsuorat sanakirjat (monisivuiset asiakirjat, merkinnät, AcroForm-widgetit, rakenne-puun elementit, valinnaisen sisällön tasot), säästö on tyypillisesti 20-40 % FlateDecode-pakatusta tiedostokoosta. 30-sivuinen pelkkää grafiikkaa sisältävä savutesti pienenee koosta 14502 tavua kokoon 8488 tavua (-41.5 %)

See Also

UseXRefStream, Compression, Version, PDF-suodatintuki