Propiedad THotPDF.LinearizeOutput
Controla si un documento recién generado se escribe en un diseño linealizado ordenado por dependencia para una visualización rápida de la primera página a través de un transporte de rangos de bytes HTTP
Declaraciones
// Delphi
property LinearizeOutput: Boolean;
// C++Builder
__property bool LinearizeOutput;
Predeterminado
False
Diseño de salida
Cuando se habilita antes de BeginDoc y EndDoc, HotPDF realiza un pase de diseño acotado y luego escribe el flujo de destino directamente en orden linealizado
- El diccionario de parámetros de linealización se encuentra en los primeros 1024 bytes
- La primera página y sus dependencias privadas preceden a las secciones de páginas posteriores
- Las dependencias compartidas se agrupan de modo que los lectores con conocimiento de rangos puedan evitar peticiones redundantes
- El flujo de pistas principal contiene las tablas de pistas de desplazamiento de páginas y de objetos compartidos
- Una tabla temprana de referencias cruzadas admite el acceso a la primera página y una tabla principal de referencias cruzadas completa el documento
Compatibilidad y límites
- La linealización requiere PDF 1.2 o posterior; HotPDF actualiza una versión seleccionada más antigua a menos que
StrictVersionLockesté habilitado, en cuyo caso la escritura lanza una excepción - El escritor linealizado emite tablas de referencias cruzadas tradicionales de texto y objetos indirectos desempaquetados incluso cuando
UseXRefStreamoUseObjectStreamsestán habilitados - El formato de tablas de pistas usa desplazamientos de 32 bits, de modo que la salida de 4 GiB o superior se rechaza con una excepción clara
- El servidor web o el transporte de almacenamiento debe admitir peticiones de rangos de bytes para proporcionar una entrega rápida de la primera página
- Esta propiedad cambia la salida del documento generado y no carga progresivamente un PDF remoto existente
Ejemplo en Delphi
PDF := THotPDF.Create(nil);
try
PDF.FileName := 'fast-view.pdf';
PDF.Version := pdf17;
PDF.LinearizeOutput := True;
PDF.BeginDoc;
PDF.Canvas.TextOut(72, 72, 'First page');
PDF.EndDoc;
finally
PDF.Free;
end;
Ejemplo en C++Builder
std::unique_ptr<THotPDF> pdf(new THotPDF(nullptr));
pdf->FileName = L"fast-view.pdf";
pdf->Version = pdf17;
pdf->LinearizeOutput = true;
pdf->BeginDoc();
pdf->Canvas->TextOut(72, 72, L"First page");
pdf->EndDoc();