|
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
|