PDFium Delphi Component Docs

Unitatea FPdfLayout

Construiește planuri măsurabile de aranjament în flux, cu elemente de pagină, coloane, tabele peste pagini, legături, noduri reutilizabile, intrare markup și semantica tagged-PDF

Exceptions and enumerations

TypeValori sau scop
EPdfLayoutErrorExcepție ridicată pentru intrare de aranjament invalidă, limite depășite și structură semantică inconsecventă
TPdfLayoutAlignmentplaLeft, plaCenter, plaRight
TPdfLayoutCommandKindplcText, plcRule, plcImage, plcPageXObject, plcCachedNode, plcLink, plcRectangle
TPdfLayoutItemKindpliText, pliSpacer, pliRule, pliImage, pliPageXObject, pliPageBreak, pliCachedNode, pliLink, pliSemanticNode, pliTable
TPdfLayoutSemanticRoleplsrArtifact, plsrParagraph, plsrHeading1, plsrHeading2, plsrHeading3, plsrHeading4, plsrHeading5, plsrHeading6, plsrList, plsrListItem, plsrListLabel, plsrListBody, plsrTable, plsrTableRow, plsrTableHeader, plsrTableData, plsrFigure, plsrCaption, plsrLink, plsrSection, plsrDivision
TPdfLayoutTableScopepltsNone, pltsRow, pltsColumn, pltsBoth
TPdfLayoutListNumberingplnNone, plnDisc, plnCircle, plnSquare, plnDecimal, plnUpperRoman, plnLowerRoman, plnUpperAlpha, plnLowerAlpha
TPdfLayoutGridTrackKindplgtkFixed, plgtkFraction, plgtkAuto
TPdfMarkupFormatpmfMarkdown, pmfHtml

Layout records

TypeMembri publici
TPdfLayoutSemanticsRole, ParentID, ElementID, AlternateText, ActualText, Language, HeaderIDs, TableScope, ColumnSpan, RowSpan, ListNumbering, Artifact, Paragraph, Figure
TPdfLayoutTextStyleFontName, FontSize, Color, Alpha, LineHeight, Alignment, KeepTogether, BreakLongWords, SpaceBefore, SpaceAfter, Default
TPdfLayoutConstraintsKeepTogether, KeepWithNext, PageBreakBefore, PageBreakAfter, OrphanLines, WidowLines, Default
TPdfLayoutPageSettingsWidth, Height, MarginLeft, MarginTop, MarginRight, MarginBottom, HeaderHeight, FooterHeight, A4, Letter
TPdfLayoutRectLeft, Top, Width, Height
TPdfLayoutGridTrackKind, Value, Minimum, Maximum, MeasuredContent
TPdfLayoutGridTracksVector dinamic de TPdfLayoutGridTrack
TPdfLayoutGridSizesVector dinamic de dimensiuni de piste rezolvate
TPdfLayoutTableOptionsCellPadding, BorderWidth, BorderColor, BorderAlpha, RepeatHeaderRows, Default
TPdfMarkupOptionsBaseStyle, HeadingScale, MaxInputCharacters, MaxNodes, Default
TPdfLayoutSemanticElementSemantics, ParentElementIndex
TPdfLayoutSemanticElementsVector dinamic de TPdfLayoutSemanticElement
TPdfLayoutCommandKind, PageNumber, Bounds, Text, FontName, FontSize, Color, Alpha, Alignment, Thickness, FileName, Uri, Source, SourcePageIndex, SemanticElementIndex, MarkedContentID, AnnotationIndex
TPdfLayoutCommandsVector dinamic de TPdfLayoutCommand
TPdfLayoutPlanPageSettings, PageCount, Commands, SemanticElements, TextLineCount, RuleCount, RectangleCount, ImageCount, PageXObjectCount, CachedNodeCount, LinkCount, TaggedContentCount, ArtifactCount, MeasuredTextCount, TotalPageReferenceCount, ReservedPageDigits, CacheHitCount, CacheMissCount, ReusedXObjectCount, ColumnCount, ColumnGap

Layout classes

TypeMembri publici
TPdfLayoutMeasurerMeasureTextWidth, CacheIdentity
TPdfLayoutItemKind
TPdfLayoutTableCellText, Uri, Style, ColumnSpan, RowSpan, Header, ElementID, HeaderIDs, Scope
TPdfLayoutTableRowAddCell, Cells, Header, AllowSplit, MinimumHeight
TPdfLayoutTableCreate, Destroy, AddRow, SetCaption, Columns, Rows, Options, Caption, CaptionStyle, ElementID, ParentID
TPdfLayoutPagedPlanCreate, Destroy, ClearPageCache, MaterializePage, Reset, Summary, CommandCount, StorageByteCount, SourceCount, Completed, bugetele MaxCommandCount, MaxStorageBytes, MaxPageCommands, MaxSourceCount și MaxCachedPages, precum și statisticile de cache CachedPageCount, CacheHitCount, CacheMissCount și PeakCachedPageCount
TPdfLayoutDocumentCreate, 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
TPdfLayoutCachedNodeCreate, Destroy, Invalidate, BeginEmission, EndEmission, Content, Width, Height, Built

Pagination constraints

Apelați SetLastItemConstraints după adăugarea oricărui element vizibil în flux, pentru a-l menține împreună, a-l lega de începutul elementului următor sau a forța o rupere fizică de pagină înainte sau după el

OrphanLines este numărul minim de linii de paragraf reținute la baza unei regiuni, iar WidowLines este minimul plasat la începutul regiunii următoare; ambele au implicit valoarea unu, pentru a păstra paginarea existentă

Constrângerile se aplică în egală măsură elementelor de rol paragraf, legătură, listă, figură și tabel, în timp ce containerele exclusiv semantice nu au geometrie și, prin urmare, resping constrângerile de paginare

Un element pliTable acceptă doar PageBreakBefore și PageBreakAfter; împărțirea rândurilor și reținerea începutului de tabel sunt controlate de modelul de tabel

Planificatorul pune în cache liniile învelite pe parcursul unei construcții, astfel încât predicția keep-with-next și emisiunea finală de comenzi nu măsoară același text de două ori

Paged command plans

Creați TPdfLayoutPagedPlan peste un TStream dedicat, accesibil prin seek și redimensionabil, apoi apelați BuildPagedPlan sau transmiteți-l către TPdf.GeneratePagedLayout

Planificatorul serializează comenzile imediat, eliberează fiecare rezultat de text învelit finalizat și lasă Plan.Commands gol, reținând totuși setările de pagină, elementele semantice, contoarele și totalurile stabile de pagini în rezumat

Comenzile de corp și comenzile ulterioare de antet sau de subsol sunt indexate ca segmente de pagină legate, astfel încât MaterializePage restabilește pagina completă fără a scana comenzi pentru alte pagini

MaxCachedPages mărginește doar vectorii de pagini reținuți de plan; apelanții care păstrează vectorii returnați le extind durata de viață, iar PDFium reține paginile native autorate până când documentul destinație este salvat sau închis

Formatul de stocare este stare de sesiune privată, nu un format de fișier portabil, fluxul nu trebuie partajat sau modificat extern, iar obiectele sursă referențiate de page XObject-uri sau de noduri în cache trebuie să supraviețuiască planului paginat

Folosiți TPdfRandomAccessStore când comenzile trebuie să rămână în memorie până la un prag selectat și să se reverse ulterior într-o stocare temporară de tip delete-on-close

Cross-page tables

Creați TPdfLayoutTable cu piste de grilă fixe, fracționare sau dimensionate pe conținut, adăugați rânduri și celule, apoi apelați AddTable; documentul stochează un instantaneu deținut de el, astfel încât mutațiile ulterioare ale apelanțului nu pot invalida un cache de plan existent

Rândurile de antet trebuie să fie contigue la începutul tabelului și se repetă după o tranziție de pagină sau de coloană când RepeatHeaderRows este true; extinderile rândurilor de antet nu pot pătrunde în rândurile de corp

Un rând de corp poate fi împărțit doar când AllowSplit este true și nu aparține unui grup cu extindere pe rânduri; toate celulele dintr-o secțiune împărțită partajează aceeași bandă de linii, aceeași completare și aceeași geometrie de bordură

Titlurile rămân împreună cu blocul repetat de antet și cu minimul de început al primului grup de corp, în timp ce grupurile tranzitive cu extindere pe rânduri se mută ca o singură unitate atomică

Planificatorul emite un singur element Table, un Caption opțional, copii TR și celule TH sau TD, indiferent de numărul de pagini; comenzile repetate de antet reutilizează indicii semantici originali, iar celulele TD primesc automat ID-uri de antet suprapuse, cu excepția cazului în care sunt furnizate ID-uri valide explicite

Bordurile tabelelor sunt comenzi artifact plcRectangle randate prin obiecte native de cale PDFium, în timp ce textul titlurilor și al celulelor rămâne conținut etichetat

Top-level routines

RutinăDescriere
ResolveLayoutTextExpandează substituenții de număr de pagină folosind lățimea rezervată de cifre
PdfLayoutSemanticRoleNameReturnează numele de structură tagged-PDF pentru un rol semantic
BuildTaggedLayoutPdfAplică un plan de aranjament finalizat și o structură etichetată octeților PDF sursă
ResolvePdfLayoutGridTracksRezolvă piste de grilă fixe, fracționare și dimensionate pe conținut, în lățimea disponibilă

See Also