| Type | Values or purpose |
|---|---|
EPdfLayoutError | Undantag som utlöses för ogiltig layoutindata, överskridna gränser och inkonsekvent semantisk struktur |
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 | Dynamisk array av TPdfLayoutGridTrack |
TPdfLayoutGridSizes | Dynamisk array av fastställda spårstorlekar |
TPdfLayoutTableOptions | CellPadding, BorderWidth, BorderColor, BorderAlpha, RepeatHeaderRows, AllowRowSpanContinuation, MaxContinuationRegions, ContinuationBefore, ContinuationAfter, ContinuationStyle, Default |
TPdfLayoutTableTextRun | Text, Style |
TPdfLayoutTableTextRuns | Dynamisk array av TPdfLayoutTableTextRun |
TPdfMarkupOptions | BaseStyle, HeadingScale, MaxInputCharacters, MaxNodes, Default |
TPdfLayoutSemanticElement | Semantics, ParentElementIndex |
TPdfLayoutSemanticElements | Dynamisk array av TPdfLayoutSemanticElement |
TPdfLayoutCommand | Kind, PageNumber, Bounds, Text, FontName, FontSize, Color, Alpha, Alignment, Thickness, FileName, Uri, Source, SourcePageIndex, SemanticElementIndex, MarkedContentID, AnnotationIndex |
TPdfLayoutCommands | Dynamisk array av 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, budgeterna MaxCommandCount, MaxStorageBytes, MaxPageCommands, MaxSourceCount och MaxCachedPages samt cachestatistiken CachedPageCount, CacheHitCount, CacheMissCount och 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 |
Anropa SetLastItemConstraints efter att ha lagt till ett synligt flödesobjekt för att hålla det samman, hålla det ihop med början av nästa objekt eller tvinga fram en fysisk sidbrytning före eller efter det
OrphanLines är minsta antal styckesrader som behålls i botten av en region och WidowLines är minsta antal som placeras i toppen av den följande regionen; båda har standardvärdet ett för att bevara befintlig paginering
Begränsningarna gäller lika för objekt med rollerna stycke, länk, lista, figur och tabell, medan rent semantiska behållare saknar geometri och därför avvisar pagineringsbegränsningar
Ett pliTable-objekt accepterar bara PageBreakBefore och PageBreakAfter; raddelning och behållning av tabellstart styrs av tabellmodellen
Planeraren cachar radbrutna rader under ett bygge, så keep-with-next-prognosen och den slutliga kommandogenereringen mäter inte samma text två gånger
Skapa TPdfLayoutPagedPlan över en dedikerad sökbar och storleksändringsbar TStream och anropa därefter BuildPagedPlan eller skicka den till TPdf.GeneratePagedLayout
Planeraren serialiserar kommandon direkt, frigör varje färdigt radbrutet textresultat och lämnar Plan.Commands tomt samtidigt som sidinställningar, semantiska element, räknare och stabila sidtotaler behålls i sammanfattningen
Brödtextkommandon och senare sidhuvuds- eller sidfotskommandon indexeras som länkade sidsegment, så att MaterializePage återställer hela sidan utan att behöva skanna kommandon för andra sidor
MaxCachedPages avgränsar bara de sidarrayer som planen behåller; anropare som sparar returnerade arrayer förlänger deras livstid, och PDFium behåller nativa författade sidor tills måldokumentet har sparats eller stängts
Lagringsformatet är privat sessionstillstånd snarare än ett portabelt filformat, strömmen får inte delas eller ändras externt, och källobjekt som refereras av sid-XObjects eller cachade noder måste överleva den sidindelade planen
Använd TPdfRandomAccessStore när kommandona ska finnas kvar i minnet upp till en vald tröskel och därefter spillas över till tillfällig lagring som raderas vid stängning
Skapa TPdfLayoutTable med fasta, fraktionella eller innehållsstorleksbestämda rutnätsspår, lägg till rader och celler och anropa därefter AddTable; dokumentet sparar en ägd ögonblicksbild så att senare anroparändringar inte kan ogiltigförklara en befintlig plancache
Rubrikrader måste ligga sammanhängande i tabellens början och upprepas efter en sid- eller kolumnövergång när RepeatHeaderRows är true; en rubrikrads spann får inte sträcka sig in i brödraderna
En brödrad kan delas när AllowSplit är true; som standard flyttas transitiva radspannerande grupper som en atomär enhet och celler i en vanlig delad rad delar samma radband, utfyllnad och kantgeometri
Sätt AllowRowSpanContinuation till True för att låta en radspannerande grupp fortsätta över sid- eller kolumnregioner; planeraren fördelar extra spannhöjd över sina rader och väljer snitt som inte skär en textrad eller en bild
AllowSplit=False förblir en atomär radbegränsning; inkompatibla radbegränsningar eller ett atomärt block som inte får plats i en ny region utlöser EPdfLayoutError i stället för att klippa eller upprepa innehåll
Rubriker stannar hos det upprepade rubrikblocket och det minsta startläget för den första brödgruppen, medan transitiva radspannerande grupper flyttas som en atomär enhet
Planeraren genererar ett Table-element, valfri Caption, TR-barn och TH- eller TD-celler oavsett sidantal; upprepade rubrikkommandon återanvänder de ursprungliga semantiska indexen, och TD-celler får överlappande rubrik-ID automatiskt om inte explicita giltiga ID:n levereras
Tabellkanter är artifact-plcRectangle-kommandon som renderas via nativa PDFium-sidobjekt, medan rubrik- och celltext förblir taggat innehåll
AddTextRun lägger till inline-text efter cellens ursprungliga Text; varje körning har sitt eget typsnitt, typsnittsstorlek, färg, alfa, radhöjd och policy för långa ords radbrytning
Blandad text radbryts med uppmätta bredder, bevarar UTF-16-surrogatpar när ett långt ord bryts och genererar separata nativa textobjekt med en gemensam baslinje; horisontell justering kommer från cellens bas-Style
Styckesavstånd och keep-together-flaggor på körningsnivå inför inte ytterligare styckeblock; använd separata rader eller vanliga layoutobjekt när de begränsningarna krävs
SetImage konfigurerar en filbaserad bild per cell, placerad ovanför sin text vid vänster utfyllnad; ett nytt anrop ersätter den bilden
Ange en explicit positiv höjd och en bredd som ryms inom cellens inre bredd; bredden noll använder hela den inre bredden, och anroparen styr bildens bildförhållande genom de angivna måtten
Bilden är odelbar vid fortsättning och genereras en gång på sin ursprungliga position; dess fil måste finnas kvar till genereringen, och en saknad fil eller en bild som inte stöds gör att genereringen rullar tillbaka tillagda sidor
En icke-tom alternativbeskrivning krävs; bilden blir ett Figure-barn till sin ursprungliga TH eller TD, medan alla textfragment förblir kopplade till den cellen
Över sidor får den ursprungliga TH eller TD de fortsatta markerade innehållsreferenserna och behåller sina RowSpan-, ColumnSpan- och rubrikassociationer; ingen dubblerad logisk cell skapas
AddSubtotalRow skapar en atomär brödrad med anroparens etikett, formaterade värde och stil; för flera kolumner spänner etiketten över alla utom den sista värdkolumnen
Hjälparen sätter KeepWithPrevious=True så att en delsumma inte blir en isolerad första rad vid en fortsättning; värdena anges av anroparen och ingen numerisk aggregering utförs
ContinuationAfter visas i slutet av en region som fortsätter, och ContinuationBefore visas efter eventuella upprepade rubriker i följande region
Båda etiketterna är tomma som standard, använder ContinuationStyle, måste rymmas på en rad och reserverar sin egen höjd; den första regionen har ingen före-etikett och den sista regionen har ingen efter-etikett
Etiketter och kanter är artifacts och lämnar den semantiska tabellhierarkin oförändrad; sidplatshållare som {page} och {pages} använder den vanliga layouttextupplösaren
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;
Använd TPdfLayoutTableOptions.Default innan du åsidosätter alternativ; AllowRowSpanContinuation är False som standard och MaxContinuationRegions är 10 000 sid- eller kolumnregioner som standard, med ett konfigurerbart tak på 100 000
Tabeller behåller gränserna 256 kolumner, 100 000 rader och 100 000 semantiska element; den totala celltexten är begränsad till 8 000 000 UTF-16-kodenheter
En blandad textcell tar emot högst 1 024 tillagda körningar, 1 000 000 UTF-16-kodenheter, 100 000 rader och 100 000 fragment; ett enskilt tecken eller ett ord med avstängd långordsbrytning som överskrider den tillgängliga bredden avvisas
En fortsatt radgrupp är begränsad till 10 000 celler; regionbudgetar och avgränsade snittsökningar förhindrar obegränsad paginering, och bilder måste rymmas i den tillgängliga brödregionen efter rubriker, etiketter och utfyllnad
Den ägda tabellögonblicksbilden och plancachen omfattar körningsstilar, bildmått, alternativtext, delsummabehållning och fortsättningsinställningar; senare ändringar i anroparens tabell påverkar inte den ögonblicksbilden
| Routine | Description |
|---|---|
ResolveLayoutText | Expanderar sidnummerplatshållare med den reserverade sifferbredden |
PdfLayoutSemanticRoleName | Returnerar tagged-PDF-strukturnamnet för en semantisk roll |
BuildTaggedLayoutPdf | Tillämpar en färdig layoutplan och taggad struktur på käll-PDF-bytes |
ResolvePdfLayoutGridTracks | Fastställer fasta, fraktionella och innehållsstorleksbestämda rutnätsspår inom den tillgängliga bredden |