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;

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

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

Powiązane API