Properti THotPDF.UseXRefStream

 

THotPDF.UseXRefStream

THotPDF

 

Atas  Sebelumnya  Berikutnya

Hasilkan stream cross-reference PDF 1.5 /Type /XRef (ISO 32000-1 7.5.8) alih-alih urutan tekstual xref ... trailer. Payload container dikompresi Flate dengan prediksi PNG Up (/DecodeParms /Predictor 12), lebar field di /W menyesuaikan rentang offset aktual (melebar melewati 4 GiB alih-alih memotong), dan lubang free-list dipadatkan menjadi subseksi /Index sehingga nomor objek yang jarang tidak lagi menghabiskan satu baris untuk masing-masing

 

Delphi syntax:

property UseXRefStream: Boolean;

 

C++ syntax:

__property bool UseXRefStream;

 

Deskripsi

Saat UseXRefStream bernilai true, EndDoc menulis satu objek stream indirek /Type /XRef alih-alih urutan tekstual lawas xref + trailer + startxref. Entri memakai /W [1 4 2]: field tipe satu byte, offset empat byte (atau nomor host objek terkompresi), dan generation dua byte (atau indeks objek terkompresi). Seluruh tabel dikompresi FlateDecode, yang biasanya memangkas overhead xref 4-10x pada dokumen besar

 

Stream XRef adalah prasyarat mutlak untuk fitur UseObjectStreams: hanya stream xref biner yang dapat mengodekan entri objek terkompresi tipe-2 yang menunjuk ke kontainer /Type /ObjStm. Mematikan UseXRefStream secara otomatis menonaktifkan UseObjectStreams saat penyimpanan

 

Nilai default: false (opt-in - mempertahankan tabel xref tekstual untuk alat yang meng-hardcode kata kunci xref dan untuk kompatibilitas maksimum dengan pembaca PDF 1.4 / yang lebih lama)

Menetapkan UseXRefStream ke true pada dokumen yang Version-nya di bawah PDF 1.5 akan diabaikan diam-diam saat penyimpanan - xref tekstual yang akan dihasilkan sebagai gantinya

 

Contoh kode

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;

 

Lihat juga

UseObjectStreams, Compression, Version, PDF Filter Support