Потоково подреждане с ограничения

HotPDF може да поставя всяка завършена страница в съхранение на файлова основа, да прилага ограничения при прекъсване на страница за абзаци, да предоставя ограничени диагностични данни за подредбата, да маркира семантични абзаци и артефакти на страниране и да определя основната посока на абзаца, преди да издава текст със смесена посока

Незабавно изчистване на страници

Задайте ImmediateFlushLayout преди BeginDoc за отчети, чийто брой страници не е известен предварително

Когато една страница се затвори, нейният окончателен компресиран или некомпресиран поток от съдържание се премества от паметта във власък временен файлов поток, докато PDF обектът остава достъпен за нормалното финализиране на кръстосаните препратки и ресурсите

ImmediateFlushedPageCount и ImmediateFlushedBytes отчитат размера на поставеното съдържание, а временните файлове се изтриват, когато притежаващите ги потоци се освободят

Страниране на абзаци

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;

Диагностика на подредбата

THPDFLayoutDiagnostic записва THPDFLayoutDiagnosticKind, индексите на изходната и свързаната страница, засегнатия правоъгълник, броя редове и причина на английски за всяко запазено решение

THPDFLayoutDiagnosticArray се връща от GetLayoutDiagnostics, докато GetLayoutDiagnostic поддържа индексиран достъп без заделяне на копие

LayoutDiagnosticLimit ограничава броя на запазените записи, а LayoutDiagnosticDroppedCount отчита решенията, отхвърлени след това ограничение

Посока на абзаца

THPDFParagraphDirection предоставя pdAuto, pdLeftToRight и pdRightToLeft

DetectParagraphDirection прилага разрешаване по първия силен знак за скриптове RTL в BMP и допълнителната равнина, така че неутралните представки и вторичните посочни поредици не избират грешна основна посока

Използвайте ConfigureParagraphDirection за постоянна настройка на абзаца или свойството THPDFPara.Direction за активния абзац

Семантика на абзаца за 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 издава стандартна маркирана последователност /P с разпределен MCID, свързване към родителското дърво на страницата и незадължителни стойности /Lang и /ActualText

THPDFPaginationArtifactSubtype предоставя pasHeader, pasFooter, pasWatermark и pasPageNumber, издавани като съдържание /Artifact с /Type /Pagination и съответстващия стандартен подтип

Свързани API