|
Emit a PDF 1.5 /Type /XRef cross-reference stream (ISO 32000-1 7.5.8) instead of the textual xref ... trailer sequence.
Syntaxe Delphi:
property UseXRefStream: Boolean;
Syntaxe C++:
__property bool UseXRefStream;
Popis
Když je UseXRefStream true, EndDoc zapíše jeden nepřímý streamový objekt /Type /XRef místo starší textové sekvence tabulka xref + trailer + startxref. Položky používají /W [1 4 2]: jednobajtové pole typu, čtyřbajtový offset (nebo číslo hostitelského komprimovaného objektu) a dvoubajtovou generaci (nebo index komprimovaného objektu). Celá tabulka je komprimována FlateDecode, což u velkých dokumentů typicky snižuje režii xref 4-10x
Streamy XRef jsou pevnou podmínkou funkce UseObjectStreams: pouze binární stream xref dokáže zakódovat položky komprimovaných objektů typu 2, které míří do kontejnerů /Type /ObjStm. Vypnutí UseXRefStream při ukládání automaticky vypne UseObjectStreams
Výchozí hodnota: false (opt-in - zachová textovou tabulku xref pro nástroje, které mají napevno zadané klíčové slovo xref, a pro maximální kompatibilitu se čtečkami PDF 1.4 / staršími)
Nastavení UseXRefStream na true u dokumentu, jehož Verze je pod PDF 1.5, se při ukládání tiše ignoruje - místo toho se vydá textový xref
PDF/A-1 také vynucuje textový xref: ISO 19005-1 je založeno na PDF 1.4 a clause 6.1.4 zakazuje streamy křížových referencí, takže když PDFACompliance pojmenovává úroveň části 1 (například 'B' nebo 'A'), EndDoc při ukládání vymaže UseXRefStream a UseObjectStreams bez ohledu na jejich nastavení; PDF/A-2 a PDF/A-3 jsou založeny na PDF 1.7 a obě vlastnosti nadále respektují
Příklad kódu
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;
Viz také
UseObjectStreams, Compression, Verze, PDF Filter Support
|