THotPDF.UseXRefStream-ominaisuus

THotPDF.UseXRefStream

THotPDF

Ylös Edellinen Seuraava

Tuottaa PDF 1.5 -tyyppisen /Type /XRef -ristiviitevirran (ISO 32000-1 7.5.8) tekstimuotoisen xref ... trailer -sarjan sijaan. Säiliön sisältö pakataan Flate:lla PNG Up -ennustuksella (/DecodeParms /Predictor 12), /W:n kenttäleveydet mukautuvat todelliseen offset-alueeseen (leventymällä yli 4 GiB:n katkaisemisen sijaan), ja vapaan listan aukot tiivistyvät /Index-aliosioiksi, joten väljästi numeroidut objektinumerot eivät enää vie kutakin riviä

Delphi syntax:

property UseXRefStream: Boolean;

C++ syntax:

__property bool UseXRefStream;

Kuvaus

Kun UseXRefStream on true, metodi EndDoc kirjoittaa yhden epäsuoran /Type /XRef -virtakohteen perinteisen tekstimuotoisen xref-taulukon + trailer- + startxref-sarjan sijaan. Merkinnät käyttävät muotoa /W [1 4 2]: yksitavuinen tyyppikenttä, nelitavuinen siirtymä (tai pakatun objektin isäntänumero) ja kaksitavuinen sukupolvi (tai pakatun objektin indeksi). Koko taulukko on FlateDecode-pakattu, mikä tyypillisesti vähentää xref-kustannuksia 4–10-kertaisesti suurissa dokumenteissa

XRef-virrat ovat ehdoton edellytys ominaisuudelle UseObjectStreams: vain binäärinen xref-virta voi koodata tyypin 2 pakatun objektin merkinnät, jotka osoittavat kohteisiin /Type /ObjStm. Asetuksen UseXRefStream kytkeminen pois käytöstä poistaa automaattisesti ominaisuuden UseObjectStreams käytöstä tallennuksen yhteydessä

Oletusarvo: false (opt-in – säilyttää tekstimuotoisen xref-taulukon työkaluille, jotka kovakoodaavat avainsanan xref, sekä maksimaalisen yhteensopivuuden saavuttamiseksi PDF 1.4:n ja sitä aikaisempien lukulaitteiden kanssa)

Asetuksen UseXRefStream muuttaminen arvoksi true dokumentille, jonka Version on alle PDF 1.5, ohitetaan hiljaisesti tallennuksen yhteydessä – sen sijaan käytetään tekstimuotoista xref-taulukkoa

PDF/A-1 pakottaa myös tekstimuotoisen xref-taulukon: ISO 19005-1 perustuu PDF 1.4 -versioon ja lauseke 6.1.4 kieltää ristiviitevuolet, joten kun PDFACompliance nimeää osan 1 tason (kuten 'B' tai 'A'), EndDoc tyhjentää UseXRefStream- ja UseObjectStreams-asetukset tallennushetkellä riippumatta siitä, miten ne oli asetettu; PDF/A-2 ja PDF/A-3 perustuvat PDF 1.7 -versioon ja kunnioittavat molempia

Code Example

HPDF := THotPDF.Create( nil );
try
  HPDF.FileName := 'c:\Output.pdf';
  HPDF.Version := pdf15;          // Required for XRef streams
  HPDF.UseXRefStream := true;     // Emit /Type /XRef instead of xref table
  HPDF.UseObjectStreams := true;  // Optional: also pack 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;

See Also

UseObjectStreams, Compression, Version, PDF-suodatintuki