Función HPDFTransferStream
Transfiere bytes de la posición actual de la fuente a la posición actual del destino y evita una copia intermedia para los tipos de almacenamiento soportados
Declaración
function HPDFTransferStream(
Source, Destination: TStream;
Count: Int64 = -1): Int64;
Unidad
HPDFObjs
Rutas de transferencia
TMemoryStreamescribe directamente desde su puntero de respaldo sin asignar un buffer de transferenciaTFileStreamescribe directamente desde vistas mapeadas de solo lectura y acotadas, y hace fallback automático cuando el mapeo no está disponibleTHPDFMappedFileStreamyTHPDFLazyFileStreamrespaldado por fuente escriben directamente desde ventanas mapeadas residentes- Los streams de acceso aleatorio delegan en
THPDFRandomAccessSource.TransferAt, mientras queTHPDFCoalescingRandomAccessSourceescribe directamente los bloques de cache retenidos - Las demás clases de stream usan un buffer de fallback acotado de 64 KiB
Count y posiciones
Un Count de -1 transfiere todos los bytes restantes desde la posición actual de la fuente, cero no transfiere nada, y un valor positivo se limita a los bytes disponibles; los valores menores que -1 se rechazan
Ambas posiciones de stream avanzan según la cantidad de bytes devuelta; la fuente y el destino deben ser objetos distintos y no nil
Integración con el PDF writer
Los cuerpos de stream PDF sin cifrar, el output decodificado sin filtros, la exportación raw de imágenes cargadas, la materialización de lazy streams y el spill adaptativo de streams temporales usan esta capa de transferencia automáticamente
Los cuerpos de stream cifrados todavía requieren staging de transformación porque sus bytes y su longitud cambian antes de la serialización