|
Émet un flux de références croisées PDF 1.5 /Type /XRef (ISO 32000-1 7.5.8) à la place de la séquence textuelle xref ... trailer
Syntaxe Delphi :
property UseXRefStream: Boolean;
Syntaxe C++ :
__property bool UseXRefStream;
Description
Lorsque UseXRefStream est activé, EndDoc écrit un seul objet flux indirect /Type /XRef au lieu de l’ancienne séquence textuelle xref + trailer + startxref. Les entrées utilisent /W [1 4 2] : un champ de type d’un octet, un décalage de quatre octets, ou le numéro d’hôte d’un objet compressé, et une génération de deux octets, ou l’index d’un objet compressé. L’ensemble de la table est compressé FlateDecode, ce qui réduit typiquement la surcharge xref d’un facteur 4 à 10 sur les gros documents
Les flux XRef sont une condition préalable stricte à la fonctionnalité UseObjectStreams : seul le flux xref binaire peut encoder les entrées d’objets compressés de type 2 qui pointent vers des conteneurs /Type /ObjStm. La désactivation de UseXRefStream désactive automatiquement UseObjectStreams au moment de l’enregistrement
Valeur par défaut : false, en activation explicite, ce qui conserve la table xref textuelle pour les outils qui codent en dur le mot-clé xref et pour une compatibilité maximale avec PDF 1.4 et les lecteurs antérieurs
Le réglage de UseXRefStream à true sur un document dont la Version est inférieure à PDF 1.5 est ignoré silencieusement à l’enregistrement ; la xref textuelle est émise à la place
Exemple de code
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;
Voir aussi
UseObjectStreams, Compression, Version, Prise en charge des filtres PDF
|