Diseño de flujo restringido
HotPDF puede almacenar cada página completada en almacenamiento respaldado por archivo, aplicar restricciones de salto de página por párrafo, exponer diagnósticos de diseño acotados, marcar párrafos semánticos y artefactos de paginación, y resolver la dirección base del párrafo antes de emitir texto de dirección mixta
Vaciado inmediato de páginas
Establezca ImmediateFlushLayout antes de BeginDoc para informes cuyo número de páginas no se conoce de antemano
Cuando se cierra una página, su flujo de contenido final comprimido o sin comprimir se traslada de la memoria a un flujo de archivo temporal propio, mientras que el objeto PDF sigue estando disponible para la finalización normal de referencias cruzadas y recursos
ImmediateFlushedPageCount e ImmediateFlushedBytes informan de la cantidad de contenido almacenado, y los archivos temporales se eliminan cuando se liberan los flujos que los poseen
Paginación de párrafos
ParagraphIndex := PDF.CreateParagraph(0, jtLeft, 36, 36, 36, 36);
PDF.ConfigureParagraphPagination(ParagraphIndex, True, 2, 2);
PDF.ConfigureParagraphDirection(ParagraphIndex, pdAuto);
PDF.BeginParagraph(ParagraphIndex);
PDF.CurrentParagraph.ShowUnicodeText(BodyText);
PDF.EndParagraph;
KeepWithNextdesplaza un párrafo cuando éste consumiría la última línea que debería quedar para el contenido siguienteMinOrphanLinesevita que queden demasiado pocas líneas iniciales en la parte inferior de una páginaMinWidowLinesadelanta un salto cuando quedarían demasiado pocas líneas de cierre en la página siguiente- La continuación automática conserva el ancho, alto, fuente, márgenes y ajustes de párrafo de la página de origen
- Cuando
ParaAutoAddPagees false, el desbordamiento se detiene en la página actual y produce un diagnósticoldkOverflow
Diagnóstico de diseño
THPDFLayoutDiagnostic registra el THPDFLayoutDiagnosticKind, los índices de página de origen y relacionados, el rectángulo afectado, el recuento de líneas y un motivo en inglés para cada decisión retenida
THPDFLayoutDiagnosticArray lo devuelve GetLayoutDiagnostics, mientras que GetLayoutDiagnostic permite el acceso indexado sin asignar una copia
LayoutDiagnosticLimit acota los registros retenidos y LayoutDiagnosticDroppedCount informa de las decisiones descartadas tras ese límite
ldkAutomaticPageBreakinforma de una continuación ordinarialdkKeepWithNext,ldkOrphanControlyldkWidowControlidentifican la restricción que desplazó un saltoldkOverflowidentifica contenido detenido por la paginación automática deshabilitadaldkImmediateFlushidentifica una página cerrada trasladada a almacenamiento respaldado por archivo
Dirección del párrafo
THPDFParagraphDirection proporciona pdAuto, pdLeftToRight y pdRightToLeft
DetectParagraphDirection aplica la resolución de primer carácter fuerte en scripts RTL del BMP y del plano suplementario, de modo que los prefijos neutros y las ejecuciones direccionales secundarias no eligen una dirección base equivocada
Use ConfigureParagraphDirection para un ajuste persistente del párrafo o la propiedad THPDFPara.Direction para el párrafo activo
Semántica de párrafos PDF/UA
Root := PDF.AddStructureElement('Document', nil);
Paragraph := PDF.BeginTaggedParagraph(Root, 'en-US', 'Accessible text');
PDF.CurrentPage.TextOut(36, 72, 0, WideString('Accessible text'));
PDF.EndTaggedParagraph;
PDF.BeginPaginationArtifact(pasHeader);
PDF.CurrentPage.TextOut(36, 20, 0, WideString('Running header'));
PDF.EndPaginationArtifact;
BeginTaggedParagraph emite una secuencia de contenido marcado /P estándar con un MCID asignado, cableado del árbol padre de página y valores opcionales /Lang y /ActualText
THPDFPaginationArtifactSubtype proporciona pasHeader, pasFooter, pasWatermark y pasPageNumber, emitidos como contenido /Artifact con /Type /Pagination y el subtipo estándar correspondiente