Layout de Streaming Restrito

O HotPDF pode colocar cada página concluída em armazenamento com suporte de arquivo, aplicar restrições de quebra de página em parágrafos, expor diagnósticos delimitados de layout, marcar parágrafos semânticos e artefatos de paginação e resolver a direção base do parágrafo antes de emitir texto com direção mista

Descarga imediata de páginas

Defina ImmediateFlushLayout antes de BeginDoc para relatórios cuja contagem de páginas não é conhecida antecipadamente

Quando uma página é fechada, seu fluxo de conteúdo final comprimido ou não comprimido é movido da memória para um fluxo de arquivo temporário próprio, enquanto o objeto PDF permanece disponível para a finalização normal de referência cruzada e de recursos

ImmediateFlushedPageCount e ImmediateFlushedBytes informam a quantidade de conteúdo preparado, e os arquivos temporários são excluídos quando seus fluxos proprietários são liberados

Paginação de parágrafos

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 layout

THPDFLayoutDiagnostic registra o THPDFLayoutDiagnosticKind, os índices de página de origem e relacionados, o retângulo afetado, a contagem de linhas e um motivo em inglês para cada decisão retida

THPDFLayoutDiagnosticArray é retornado por GetLayoutDiagnostics, enquanto GetLayoutDiagnostic oferece acesso indexado sem alocar uma cópia

LayoutDiagnosticLimit limita os registros retidos e LayoutDiagnosticDroppedCount informa as decisões descartadas após esse limite

Direção do parágrafo

THPDFParagraphDirection oferece pdAuto, pdLeftToRight e pdRightToLeft

DetectParagraphDirection aplica a resolução de primeiro caractere forte em scripts RTL do BMP e do plano suplementar, de modo que prefixos neutros e sequências direcionais secundárias não escolham a direção base errada

Use ConfigureParagraphDirection para uma configuração persistente do parágrafo ou a propriedade THPDFPara.Direction para o parágrafo ativo

Semântica de parágrafo 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 uma sequência padrão de conteúdo marcado /P com um MCID alocado, ligação à árvore pai da página e valores opcionais de /Lang e /ActualText

THPDFPaginationArtifactSubtype oferece pasHeader, pasFooter, pasWatermark e pasPageNumber, emitidos como conteúdo /Artifact com /Type /Pagination e o subtipo padrão correspondente

APIs relacionadas