Disposición de flujo restringido
HotPDF puede almacenar cada página completada en almacenamiento respaldado por archivo, aplicar restricciones de salto de página de párrafos, exponer diagnósticos de disposición acotados, marcar párrafos semánticos y artefactos de paginación, y resolver la dirección base de un párrafo antes de emitir texto de dirección mixta
Volcado inmediato de páginas
Establezca ImmediateFlushLayout antes de BeginDoc para informes cuya cantidad de páginas no se conoce de antemano
Cuando una página se cierra, su flujo de contenido final comprimido o sin comprimir se mueve de la memoria a un flujo de archivo temporal propio, mientras el objeto PDF sigue disponible para la finalización normal de referencias cruzadas y recursos
ImmediateFlushedPageCount y ImmediateFlushedBytes informan 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;
KeepWithNextmueve un párrafo cuando este consumiría la última línea que debería quedar para el contenido siguienteMinOrphanLinesevita que queden muy pocas líneas iniciales al final de una páginaMinWidowLinesadelanta un salto cuando quedarían muy 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ósticos de disposición
THPDFLayoutDiagnostic registra el THPDFLayoutDiagnosticKind, los índices de página de origen y relacionados, el rectángulo afectado, la cantidad de líneas y una razón en inglés para cada decisión retenida
THPDFLayoutDiagnosticArray lo devuelve GetLayoutDiagnostics, mientras que GetLayoutDiagnostic ofrece acceso indexado sin asignar una copia
LayoutDiagnosticLimit acota los registros retenidos y LayoutDiagnosticDroppedCount informa las decisiones descartadas tras ese límite
ldkAutomaticPageBreakinforma una continuación ordinarialdkKeepWithNext,ldkOrphanControlyldkWidowControlidentifican la restricción que movió un saltoldkOverflowidentifica contenido detenido por la paginación automática deshabilitadaldkImmediateFlushidentifica una página cerrada que se movió a almacenamiento respaldado por archivo
Dirección del párrafo
THPDFParagraphDirection ofrece pdAuto, pdLeftToRight y pdRightToLeft
DetectParagraphDirection aplica resolución por primer carácter fuerte en scripts RTL del BMP y plan suplementario, de modo que los prefijos neutros y las ejecuciones direccionales secundarias no eligen la 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 la página y valores opcionales de /Lang y /ActualText
THPDFPaginationArtifactSubtype ofrece pasHeader, pasFooter, pasWatermark y pasPageNumber, emitidos como contenido /Artifact con /Type /Pagination y el subtipo estándar correspondiente