Układ przesyłania strumieniowego z ograniczeniami
HotPDF potrafi umieszczać każdą ukończoną stronę w pamięci plikowej, stosować ograniczenia podziału strony akapitu, udostępniać ograniczoną diagnostykę układu, oznaczać akapity semantyczne i artefakty paginacji oraz rozstrzygać podstawowy kierunek akapitu przed emisją tekstu o mieszanym kierunku
Immediate page flushing
Ustaw ImmediateFlushLayout przed BeginDoc dla raportów, których liczba stron nie jest z góry znana
Gdy strona jest zamykana, jej końcowy skompresowany lub nieskompresowany strumień zawartości przenosi się z pamięci do strumienia we własnym pliku tymczasowym, podczas gdy obiekt PDF pozostaje dostępny do normalnej finalizacji odsyłaczy krzyżowych i zasobów
ImmediateFlushedPageCount i ImmediateFlushedBytes zgłaszają ilość umieszczonej zawartości, a pliki tymczasowe są usuwane po zwolnieniu strumieni będących ich właścicielami
Paragraph pagination
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;
KeepWithNextprzesuwa akapit, gdy zużyłby końcowy wiersz, który powinien pozostać dla następującej zawartościMinOrphanLineszapobiega pozostawieniu zbyt małej liczby wierszy otwierających na dole stronyMinWidowLinesprzesuwa podział, gdy na następnej stronie pozostałoby zbyt mało wierszy zamykających- Automatyczna kontynuacja zachowuje szerokość, wysokość, czcionkę, marginesy i ustawienia akapitu strony źródłowej
- Gdy
ParaAutoAddPagewynosi false, przepełnienie zatrzymuje się na bieżącej stronie i tworzy diagnostykęldkOverflow
Layout diagnostics
THPDFLayoutDiagnostic rejestruje THPDFLayoutDiagnosticKind, indeksy strony źródłowej i powiązanych stron, dotknięty prostokąt, liczbę wierszy oraz angielską przyczynę każdej zatrzymanej decyzji
THPDFLayoutDiagnosticArray jest zwracane przez GetLayoutDiagnostics, podczas gdy GetLayoutDiagnostic obsługuje dostęp indeksowany bez przydzielania kopii
LayoutDiagnosticLimit ogranicza zatrzymane rekordy, a LayoutDiagnosticDroppedCount zgłasza decyzje odrzucone po tym limicie
ldkAutomaticPageBreakzgłasza zwykłą kontynuacjęldkKeepWithNext,ldkOrphanControlildkWidowControlidentyfikują ograniczenie, które przesunęło podziałldkOverflowidentyfikuje zawartość zatrzymaną przez wyłączenie automatycznej paginacjildkImmediateFlushidentyfikuje zamkniętą stronę przeniesioną do pamięci plikowej
Paragraph direction
THPDFParagraphDirection provides pdAuto, pdLeftToRight, and pdRightToLeft
DetectParagraphDirection stosuje rozstrzyganie pierwszego silnego znaku w skryptach RTL płaszczyzny BMP i uzupełniającej, więc neutralne prefiksy i drugorzędne przebiegi kierunkowe nie wybierają błędnego kierunku podstawowego
Użyj ConfigureParagraphDirection dla trwałego ustawienia akapitu lub właściwości THPDFPara.Direction dla aktywnego akapitu
PDF/UA paragraph semantics
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 emituje standardową sekwencję oznakowanej zawartości /P z przydzielonym MCID, okablowaniem drzewa rodzica strony i opcjonalnymi wartościami /Lang oraz /ActualText
THPDFPaginationArtifactSubtype udostępnia pasHeader, pasFooter, pasWatermark i pasPageNumber, emitowane jako zawartość /Artifact z /Type /Pagination i pasującym standardowym podtypem