|
Emite un flujo de referencias cruzadas PDF 1.5 /Type /XRef (ISO 32000-1 7.5.8) en lugar de la secuencia textual xref ... trailer
Sintaxis Delphi:
property UseXRefStream: Boolean;
Sintaxis C++:
__property bool UseXRefStream;
Descripción
Cuando UseXRefStream está en true, EndDoc escribe un único objeto de flujo indirecto /Type /XRef en lugar de la secuencia heredada de tabla textual xref + trailer + startxref. Las entradas usan /W [1 4 2]: un campo de tipo de un byte, un desplazamiento de cuatro bytes (o número de host de objeto comprimido) y una generación de dos bytes (o índice de objeto comprimido). Toda la tabla se comprime con FlateDecode, lo que normalmente reduce la sobrecarga xref entre 4 y 10 veces en documentos grandes
Los flujos XRef son un requisito indispensable para la función UseObjectStreams: solo el flujo xref binario puede codificar las entradas de objeto comprimido de tipo 2 que apuntan a contenedores /Type /ObjStm. Desactivar UseXRefStream deshabilita automáticamente UseObjectStreams al guardar
Valor predeterminado: false (opcional - conserva la tabla xref textual para herramientas que codifican el literal xref y para máxima compatibilidad con PDF 1.4 / lectores anteriores)
Al establecer UseXRefStream en true en un documento cuya Version está por debajo de PDF 1.5, se ignora en silencio al guardar - en su lugar se emite el xref textual
Ejemplo de código
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;
Véase también
UseObjectStreams, Compression, Version, Soporte de filtros PDF
|