Omezené rozvržení proudu

HotPDF umí stagedovat každou dokončenou stránku do úložiště zálohovaného souborem, aplikovat omezení zalomení stránky odstavce, zpřístupnit ohraničenou diagnostiku rozvržení, označit sémantické odstavce a artefakty stránkování a vyřešit základní směr odstavce před emitováním textu smíšeného směru

Okamžitý flush stránek

Nastavte ImmediateFlushLayout před BeginDoc pro reporty, jejichž počet stránek není předem znám

Při uzavření stránky se její konečný komprimovaný nebo nekomprimovaný proud obsahu přesune z paměti do vlastního proudu dočasného souboru, zatímco objekt PDF zůstává dostupný pro normální finalizaci křížových referencí a prostředků

ImmediateFlushedPageCount a ImmediateFlushedBytes hlásí množství stagedovaného obsahu a dočasné soubory jsou smazány při uvolnění vlastnících proudů

Stránkování odstavců

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;

Diagnostika rozvržení

THPDFLayoutDiagnostic zaznamená THPDFLayoutDiagnosticKind, indexy zdrojové a související stránky, ohraničený obdélník, počet řádků a anglický důvod pro každé zachované rozhodnutí

THPDFLayoutDiagnosticArray je vrácena funkcí GetLayoutDiagnostics, zatímco GetLayoutDiagnostic podporuje indexovaný přístup bez alokace kopie

LayoutDiagnosticLimit ohraničuje zachované záznamy a LayoutDiagnosticDroppedCount hlásí rozhodnutí zahozená po tomto limitu

Směr odstavce

THPDFParagraphDirection poskytuje pdAuto, pdLeftToRight a pdRightToLeft

DetectParagraphDirection aplikuje rozlišení prvního silného znaku napříč BMP a doplňkovými rovinami RTL skriptů, takže neutrální předpony a sekundární směrové běhy nevyberou špatný základní směr

Použijte ConfigureParagraphDirection pro trvalé nastavení odstavce nebo vlastnost THPDFPara.Direction pro aktivní odstavec

Sémantika odstavce 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 emituje standardní sekvenci tagovaného obsahu /P s přiděleným MCID, propojením parent-tree stránky a volitelnými hodnotami /Lang a /ActualText

THPDFPaginationArtifactSubtype poskytuje pasHeader, pasFooter, pasWatermark a pasPageNumber, emitované jako obsah /Artifact s /Type /Pagination a odpovídajícím standardním podtypem

Související API