| Type | Values or purpose |
|---|---|
EPdfLayoutError | Exceptie verhoogd voor ongeldige layoutinvoer, overschreden limieten en inconsistente semantische structuur |
TPdfLayoutAlignment | plaLeft, plaCenter, plaRight |
TPdfLayoutCommandKind | plcText, plcRule, plcImage, plcPageXObject, plcCachedNode, plcLink, plcRectangle |
TPdfLayoutItemKind | pliText, pliSpacer, pliRule, pliImage, pliPageXObject, pliPageBreak, pliCachedNode, pliLink, pliSemanticNode, pliTable |
TPdfLayoutSemanticRole | plsrArtifact, plsrParagraph, plsrHeading1, plsrHeading2, plsrHeading3, plsrHeading4, plsrHeading5, plsrHeading6, plsrList, plsrListItem, plsrListLabel, plsrListBody, plsrTable, plsrTableRow, plsrTableHeader, plsrTableData, plsrFigure, plsrCaption, plsrLink, plsrSection, plsrDivision |
TPdfLayoutTableScope | pltsNone, pltsRow, pltsColumn, pltsBoth |
TPdfLayoutListNumbering | plnNone, plnDisc, plnCircle, plnSquare, plnDecimal, plnUpperRoman, plnLowerRoman, plnUpperAlpha, plnLowerAlpha |
TPdfLayoutGridTrackKind | plgtkFixed, plgtkFraction, plgtkAuto |
TPdfMarkupFormat | pmfMarkdown, pmfHtml |
| Type | Public members |
|---|---|
TPdfLayoutSemantics | Role, ParentID, ElementID, AlternateText, ActualText, Language, HeaderIDs, TableScope, ColumnSpan, RowSpan, ListNumbering, Artifact, Paragraph, Figure |
TPdfLayoutTextStyle | FontName, FontSize, Color, Alpha, LineHeight, Alignment, KeepTogether, BreakLongWords, SpaceBefore, SpaceAfter, Default |
TPdfLayoutConstraints | KeepTogether, KeepWithNext, PageBreakBefore, PageBreakAfter, OrphanLines, WidowLines, Default |
TPdfLayoutPageSettings | Width, Height, MarginLeft, MarginTop, MarginRight, MarginBottom, HeaderHeight, FooterHeight, A4, Letter |
TPdfLayoutRect | Left, Top, Width, Height |
TPdfLayoutGridTrack | Kind, Value, Minimum, Maximum, MeasuredContent |
TPdfLayoutGridTracks | Dynamische array van TPdfLayoutGridTrack |
TPdfLayoutGridSizes | Dynamische array van geresolveerde trackgroottes |
TPdfLayoutTableOptions | CellPadding, BorderWidth, BorderColor, BorderAlpha, RepeatHeaderRows, AllowRowSpanContinuation, MaxContinuationRegions, ContinuationBefore, ContinuationAfter, ContinuationStyle, Default |
TPdfLayoutTableTextRun | Text, Style |
TPdfLayoutTableTextRuns | Dynamische array van TPdfLayoutTableTextRun |
TPdfMarkupOptions | BaseStyle, HeadingScale, MaxInputCharacters, MaxNodes, Default |
TPdfLayoutSemanticElement | Semantics, ParentElementIndex |
TPdfLayoutSemanticElements | Dynamische array van TPdfLayoutSemanticElement |
TPdfLayoutCommand | Kind, PageNumber, Bounds, Text, FontName, FontSize, Color, Alpha, Alignment, Thickness, FileName, Uri, Source, SourcePageIndex, SemanticElementIndex, MarkedContentID, AnnotationIndex |
TPdfLayoutCommands | Dynamische array van TPdfLayoutCommand |
TPdfLayoutPlan | PageSettings, PageCount, Commands, SemanticElements, TextLineCount, RuleCount, RectangleCount, ImageCount, PageXObjectCount, CachedNodeCount, LinkCount, TaggedContentCount, ArtifactCount, MeasuredTextCount, TotalPageReferenceCount, ReservedPageDigits, CacheHitCount, CacheMissCount, ReusedXObjectCount, ColumnCount, ColumnGap |
| Type | Public members |
|---|---|
TPdfLayoutMeasurer | MeasureTextWidth, CacheIdentity |
TPdfLayoutItem | Kind |
TPdfLayoutTableCell | Text, Uri, Style, AddTextRun, TextRuns, SetImage, ColumnSpan, RowSpan, Header, ElementID, HeaderIDs, Scope |
TPdfLayoutTableRow | AddCell, Cells, Header, AllowSplit, MinimumHeight, KeepWithPrevious |
TPdfLayoutTable | Create, Destroy, AddRow, AddSubtotalRow, SetCaption, Columns, Rows, Options, Caption, CaptionStyle, ElementID, ParentID |
TPdfLayoutPagedPlan | Create, Destroy, ClearPageCache, MaterializePage, Reset, Summary, CommandCount, StorageByteCount, SourceCount, Completed, de budgetten MaxCommandCount, MaxStorageBytes, MaxPageCommands, MaxSourceCount en MaxCachedPages, en de cachestatistieken CachedPageCount, CacheHitCount, CacheMissCount en PeakCachedPageCount |
TPdfLayoutDocument | Create, Destroy, Clear, AddText, AddSpacer, AddRule, AddImage, AddPageXObject, AddCachedNode, AddLink, AddSemanticNode, SetLastItemSemantics, SetLastItemConstraints, AddTable, AddPageBreak, LoadMarkup, InvalidateCache, BuildPlan, BuildPagedPlan, PageSettings, HeaderText, FooterText, HeaderStyle, FooterStyle, ReservedPageDigits, ColumnCount, ColumnGap, Items |
TPdfLayoutCachedNode | Create, Destroy, Invalidate, BeginEmission, EndEmission, Content, Width, Height, Built |
Roep SetLastItemConstraints aan na het toevoegen van elk zichtbaar flow-item om het bij elkaar te houden, samen met het begin van het volgende item, of om een fysieke paginabreak voor of na het item af te dwingen
OrphanLines is het minimum aantal alinearegels dat onderaan een regio behouden blijft en WidowLines is het minimum dat bovenaan de volgende regio wordt geplaatst; beide staan standaard op één om bestaande paginering te bewaren
Constraints gelden in gelijke mate voor items met de rol alinea, link, lijst, figuur en tabel, terwijl semantic-only containers geen geometrie hebben en daarom pagineringsconstraints afwijzen
Een pliTable-item accepteert alleen PageBreakBefore en PageBreakAfter; rijopsplitsing en het vasthouden van de tabelstart worden door het tabelmodel gestuurd
De planner cachet gewrapte regels tijdens een build, zodat keep-with-next-voorspelling en de uiteindelijke commando-uitvoer niet dezelfde tekst tweemaal meten
Maak een TPdfLayoutPagedPlan aan over een aparte seekable en resizable TStream, en roep daarna BuildPagedPlan aan of geef het plan door aan TPdf.GeneratePagedLayout
De planner serialiseert commando's onmiddellijk, geeft elk voltooid gewrappt-tekstresultaat vrij en laat Plan.Commands leeg terwijl pagina-instellingen, semantische elementen, tellingen en stabiele paginatotalen in de samenvatting behouden blijven
Body-commando's en latere header- of footer-commando's worden geïndexeerd als gekoppelde paginasegmenten, zodat MaterializePage de complete pagina herstelt zonder commando's van andere pagina's te doorzoeken
MaxCachedPages begrenst alleen de pagina-arrays die het plan vasthoudt; aanroepers die teruggegeven arrays bewaren verlengen hun levensduur, en PDFium houdt native authored pagina's vast totdat het doeldocument is opgeslagen of gesloten
Het opslagformaat is privé-sessiestatus in plaats van een draagbaar bestandsformaat, de stream mag niet extern worden gedeeld of gewijzigd, en bronobjecten waarnaar page XObjects of gecachte knooppunten verwijzen moeten langer bestaan dan het paged plan
Gebruik TPdfRandomAccessStore wanneer commando's tot een gekozen drempel in het geheugen moeten blijven en daarna moeten overlopen naar delete-on-close tijdelijke opslag
Maak een TPdfLayoutTable met vaste, fractionele of contentgestuurde gridtracks, voeg rijen en cellen toe en roep daarna AddTable aan; het document bewaart een eigen momentopname zodat latere mutaties van de aanroeper een bestaande plancache niet ongeldig kunnen maken
Headerrijen moeten aaneengesloten aan het begin van de tabel staan en worden herhaald na een pagina- of kolomovergang wanneer RepeatHeaderRows True is; headerrij-spans mogen niet doorlopen in bodyrijen
Een bodyrij kan worden gesplitst wanneer AllowSplit True is; standaard bewegen transitieve rijspan-groepen als één atomaire eenheid, en cellen in een gewone gesplitste rij delen dezelfde regelband, padding- en randgeometrie
Zet AllowRowSpanContinuation op True om een rijspan-groep te laten doorlopen over pagina- of kolomregio's; de planner verdeelt extra spanhoogte over de rijen van de groep en kiest snijpunten die noch een tekstregel noch een afbeelding doorsnijden
AllowSplit=False blijft een atomaire-rijbeperking; incompatibele rijbeperkingen of een atomaire blok dat niet in een verse regio past, verhogen EPdfLayoutError in plaats van content af te kappen of te herhalen
Bijschriften blijven bij het initiële headerblok en het minimale begin van de eerste bodygroep; herhaalde headers hergebruiken dezelfde oorspronkelijke headerelementen
De planner levert één Table-element, een optionele Caption, TR-children en TH- of TD-cellen, ongeacht het pagina-aantal; herhaalde header-commando's hergebruiken de oorspronkelijke semantische indexen, en TD-cellen krijgen automatisch overlappende header-ID's tenzij expliciete geldige ID's worden aangeleverd
Tabelranden zijn artifact-plcRectangle-commando's die via native PDFium-padobjecten worden gerenderd, terwijl bijschrift- en celtekst getagde content blijven
AddTextRun voegt inline tekst toe na de oorspronkelijke Text van de cel; elke run heeft zijn eigen lettertype, lettergrootte, kleur, alpha, regelhoogte en beleid voor het afbreken van lange woorden
Gemengde tekst wordt gewrapt met gemeten breedtes, behoudt UTF-16-surrogaatparen bij het afbreken van een lang woord en emitteert afzonderlijke native tekstobjecten met een gedeelde baseline; horizontale uitlijning komt van de basis-Style van de cel
Alineaspacing en keep-together-vlaggen op runniveau introduceren geen extra alineablokken; gebruik aparte rijen of gewone layoutitems wanneer die beperkingen nodig zijn
SetImage configureert één bestandsgebaseerde afbeelding per cel, gepositioneerd boven de tekst bij de linker padding; een nieuwe aanroep vervangt die afbeelding
Geef een expliciete positieve hoogte en een breedte die binnen de binnenste celbreedte past; een breedte van nul gebruikt de volledige binnenbreedte, en de aanroeper bepaalt de beeldverhouding via de meegegeven afmetingen
De afbeelding is ondeelbaar tijdens continuatie en wordt één keer op zijn oorspronkelijke positie geëmitteerd; het bestand moet beschikbaar blijven tot de generatie, en een ontbrekend bestand of een niet-ondersteunde afbeelding zorgt dat de generatie toegevoegde pagina's terugdraait
Een niet-lege alternatieve beschrijving is vereist; de afbeelding wordt een Figure-child van zijn oorspronkelijke TH of TD, terwijl alle tekstfragmenten aan die cel gekoppeld blijven
Over pagina's heen ontvangt de oorspronkelijke TH of TD de voortgezette marked-content-referenties en behoudt hij zijn RowSpan, ColumnSpan en headerkopelingen; er wordt geen dubbele logische cel aangemaakt
AddSubtotalRow maakt een atomaire bodyrij met het label, de opgemaakte waarde en de stijl van de aanroeper; bij meerdere kolommen overspant het label alle kolommen behalve de laatste waardekolom
Het hulpje zet KeepWithPrevious=True zodat een subtotaal geen geïsoleerde eerste rij op een vervolg wordt; waarden worden door de aanroeper aangeleverd en er wordt geen numerieke aggregatie uitgevoerd
ContinuationAfter wordt getoond aan het einde van een regio die doorloopt, en ContinuationBefore wordt getoond na eventuele herhaalde headers in de volgende regio
Beide labels zijn standaard leeg, gebruiken ContinuationStyle, moeten op één regel passen en reserveren hun eigen hoogte; de eerste regio heeft geen before-label en de laatste regio heeft geen after-label
Labels en randen zijn artifacts, waardoor de semantische tabelhiërarchie ongewijzigd blijft; pagina-placeholders zoals {page} en {pages} gebruiken de gewone layouttekstresolver
procedure TPdfLayoutTableCell.AddTextRun(const Text: WideString; const Style: TPdfLayoutTextStyle); procedure TPdfLayoutTableCell.SetImage(const FileName: string; Width, Height: Single; const AlternateText: WideString); function TPdfLayoutTable.AddSubtotalRow(const LabelText, ValueText: WideString; const Style: TPdfLayoutTextStyle): TPdfLayoutTableRow;
Gebruik TPdfLayoutTableOptions.Default voordat je opties overschrijft; AllowRowSpanContinuation staat standaard op False en MaxContinuationRegions staat standaard op 10,000 pagina- of kolomregio's, met een instelbaar plafond van 100,000
Tabellen behouden de limieten van 256 kolommen, 100,000 rijen en 100,000 semantische elementen; de totale celtekst is beperkt tot 8,000,000 UTF-16-code-eenheden
Een cel met gemengde tekst accepteert hooguit 1,024 toegevoegde runs, 1,000,000 UTF-16-code-eenheden, 100,000 regels en 100,000 fragmenten; een afzonderlijk teken of een woord met uitgeschakeld lange-woorden-afbreken dat de beschikbare breedte overschrijdt, wordt afgewezen
Een doorlopende rijgroep is beperkt tot 10,000 cellen; regiobudgetten en begrensde snijzoekacties voorkomen onbegrensde paginering, en afbeeldingen moeten binnen de beschikbare body-regio passen na headers, labels en padding
De eigen tabelmomentopname en plancache bevatten runstijlen, afbeeldingsafmetingen, alternatieve tekst, subtotaalbehoud en continuatie-instellingen; latere wijzigingen aan de tabel van de aanroeper veranderen die momentopname niet
| Routine | Description |
|---|---|
ResolveLayoutText | Werkt paginanummer-placeholders bij met de gereserveerde cijferbreedte |
PdfLayoutSemanticRoleName | Geeft de tagged-PDF-structuurnaam voor een semantische rol terug |
BuildTaggedLayoutPdf | Past een voltooid layoutplan en tagged structure toe op PDF-bronbytes |
ResolvePdfLayoutGridTracks | Resolveert vaste, fractionele en contentgestuurde gridtracks binnen de beschikbare breedte |