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;

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

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

APIs relacionadas