THotPDF.UseXRefStream Property

 

THotPDF.UseXRefStream

THotPDF

 

Vrh  Prejšnja  Naslednja

Izpiše tok navzkrižnih sklicev /Type /XRef za PDF 1.5 (ISO 32000-1 7.5.8) namesto besedilnega zaporedja xref ... trailer. Vsebino vsebnika stisne Flate s PNG-Up predikcijo (/DecodeParms /Predictor 12), širine polj v /W se prilagodijo dejanskemu obsegu odmikov (razširijo se čez 4 GiB, namesto da bi jih odsekali), vrzeli v seznamu prostih vnosev pa se strnejo v podrazdelke /Index, tako da redka številka objekta ne stane svoje vrstice

 

Delphi syntax:

property UseXRefStream: Boolean;

 

C++ syntax:

__property bool UseXRefStream;

 

Description

Ko je UseXRefStream nastavljen na true, zapiše EndDoc en sam posredni objekt toka /Type /XRef namesto starega besedilnega zaporedja xref tabela + trailer + startxref. Vnosi uporabljajo /W [1 4 2]: enobajtno polje tipa, štiribajtni odmik (ali številko gostitelja stisnjenega objekta) in dvobajtno generacijo (ali indeks stisnjenega objekta). Celotna tabela je stisnjena s FlateDecode, kar pri velikih dokumentih običajno zmanjša xref režijo za 4-10x

 

Tokovi XRef so trdi predpogoj za funkcijo UseObjectStreams: samo binarni tok xref zna kodirati vnose stisnjenih objektov tipa 2, ki kažejo v vsebnike /Type /ObjStm. Če UseXRefStream izklopite, se ob shranjevanju samodejno izklopi tudi UseObjectStreams

 

Privzeta vrednost: false (izberete ga sami - ohrani besedilno tabelo xref za orodja, ki ključno besedo xref kodirajo na trdo, in za največjo združljivost z bralniki PDF 1.4 / starejšimi)

Nastavitev UseXRefStream na true za dokument, katerega Version je pod PDF 1.5, se med shranjevanjem tiho prezre in namesto tega se izpiše besedilni xref

 

Tudi PDF/A-1 prisili besedilni xref: ISO 19005-1 temelji na PDF 1.4 in točka 6.1.4 prepoveduje tokove navzkrižnih sklicev, zato ko PDFACompliance navaja raven prvega dela (na primer 'B' ali 'A'), EndDoc ob shranjevanju počisti UseXRefStream in UseObjectStreams, ne glede na to, kako sta bila nastavljena; PDF/A-2 in PDF/A-3 temeljita na PDF 1.7 in obe nastavitvi še naprej spoštujeta

 

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;

 

Glejte tudi

UseObjectStreams, Compression, Version, PDF Filter Support