THotPDF.UseXRefStream Property

 

THotPDF.UseXRefStream

THotPDF

 

Góra  Poprzedni  Następny

Emituje strumień odsyłaczy PDF 1.5 /Type /XRef (ISO 32000-1 7.5.8) zamiast tekstowej sekwencji xref ... trailer

 

Składnia Delphi:

property UseXRefStream: Boolean;

 

Składnia C++:

__property bool UseXRefStream;

 

Opis

Gdy UseXRefStream ma wartość true, EndDoc zapisuje pojedynczy pośredni obiekt strumienia /Type /XRef zamiast starszej tekstowej sekwencji tabeli xref + trailer + startxref. Wpisy używają /W [1 4 2]: jednobajtowego pola typu, czterobajtowego przesunięcia (lub numeru hosta obiektu skompresowanego) i dwubajtowej generacji (lub indeksu obiektu skompresowanego). Cała tabela jest kompresowana FlateDecode, zwykle zmniejszając narzut xref 4-10 razy w dużych dokumentach

 

Strumienie XRef są twardym wymaganiem funkcji UseObjectStreams: tylko binarny strumień xref może zakodować wpisy skompresowanych obiektów typu 2 wskazujące do kontenerów /Type /ObjStm. Wyłączenie UseXRefStream automatycznie wyłącza UseObjectStreams podczas zapisu

 

Wartość domyślna: false (opcja włączana jawnie - zachowuje tekstową tabelę xref dla narzędzi, które mają zakodowane na sztywno słowo kluczowe xref, oraz dla maksymalnej zgodności z czytnikami PDF 1.4 / wcześniejszymi)

Ustawienie UseXRefStream na true w dokumencie, którego Version jest poniżej PDF 1.5, jest po cichu ignorowane podczas zapisu - zamiast tego emitowany jest tekstowy xref

 

Przykład kodu

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;

 

Zobacz też

UseObjectStreams, Compression, Version, PDF Filter Support