THotPDF.UseXRefStream Property THotPDF.UseXRefStream Property THotPDF.UseXRefStream Property THotPDF.UseXRefStream Property THotPDF.UseXRefStream Property THotPDF.UseXRefStream Property THotPDF.UseXRefStream Property

 

THotPDF.UseXRefStream

THotPDF

 

Top  Previous  Next

Emette un PDF 1.5 /Type /XRef cross-reference stream (ISO 32000-1 7.5.8) instead of the textual xref ... trailer sequence. The container payload is Flate-compressed with PNG Up prediction (/DecodeParms /Predictor 12), field widths in /W si adattino all'intervallo effettivo degli offset (allargandosi oltre i 4 GiB invece di troncare), e i buchi di free-list collassano in /Index sotto-sezioni così i numeri di oggetto sparsi smettono di costare una riga ciascuno.

 

Sintassi Delphi:

property UseXRefStream: Boolean;

 

Sintassi C++:

__property bool UseXRefStream;

 

Descrizione

Quando UseXRefStream è true, EndDoc scrive un singolo /Type /XRef in uno stream indiretto invece della tabella testuale xref tabella + trailer + startxref . Le voci usano /W [1 4 2]: un campo tipo di un byte, un offset di quattro byte (o numero ospite dell'oggetto compresso) e una generazione di due byte (o indice dell'oggetto compresso). L'intera tabella è compressa FlateDecode, tipicamente riducendo l'overhead xref di 4-10 volte sui documenti grandi.

 

Gli stream XRef sono un prerequisito imprescindibile per il UseObjectStreams : solo lo stream xref binario può codificare le voci di tipo 2 degli oggetti compressi che puntano dentro /Type /ObjStm . Disattivare UseXRefStream disabilita automaticamente UseObjectStreams al salvataggio.

 

Valore predefinito: false (opt-in - keeps the textual xref table for tooling that hard-codes the xref keyword and for maximum compatibility with PDF 1.4 / earlier readers).

Impostare UseXRefStream su true su un documento il cui Version è precedente al PDF 1.5 viene ignorato silenziosamente al salvataggio - viene emessa la xref testuale.

 

PDF/A-1 forza anche la xref testuale: ISO 19005-1 è costruita sul PDF 1.4 e la clausola 6.1.4 vieta gli stream di riferimenti incrociato, quindi quando PDFACompliance names a part-1 level (such as 'B' oppure 'A') EndDoc ripulisce UseXRefStream e UseObjectStreams al salvataggio indipendentemente da come erano impostati; PDF/A-2 e PDF/A-3 sono costruiti sul PDF 1.7 e continuano a onorarli entrambi

 

Esempio di codice

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;

 

Vedi anche:

UseObjectStreams, Compression, Version, Supporto dei filtri PDF