Потоково подреждане с ограничения
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;
KeepWithNextпремества абзац, когато той би заемал последния ред, който трябва да остане за следващото съдържаниеMinOrphanLinesпредотвратява оставянето на твърде малко начални редове в долната част на страницатаMinWidowLinesпремества прекъсването напред, когато на следващата страница биха останали твърде малко крайни редове- Автоматичното продължаване запазва ширината и височината на изходната страница, шрифта, полетата и настройките на абзаца
- Когато
ParaAutoAddPageе false, препълването спира на текущата страница и генерира диагностично съобщениеldkOverflow
Диагностика на подредбата
THPDFLayoutDiagnostic записва THPDFLayoutDiagnosticKind, индексите на изходната и свързаната страница, засегнатия правоъгълник, броя редове и причина на английски за всяко запазено решение
THPDFLayoutDiagnosticArray се връща от GetLayoutDiagnostics, докато GetLayoutDiagnostic поддържа индексиран достъп без заделяне на копие
LayoutDiagnosticLimit ограничава броя на запазените записи, а LayoutDiagnosticDroppedCount отчита решенията, отхвърлени след това ограничение
ldkAutomaticPageBreakотчита обикновено продължаванеldkKeepWithNext,ldkOrphanControlиldkWidowControlидентифицират ограничението, което е преместило прекъсванетоldkOverflowидентифицира съдържание, спряно от изключено автоматично страниранеldkImmediateFlushидентифицира затворена страница, преместена в съхранение на файлова основа
Посока на абзаца
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 и съответстващия стандартен подтип