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;

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

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

APIs relacionadas