PDFium Delphi Component Docs

FPdfLayout unit

Membangun rencana flow-layout terukur dengan furniture halaman, kolom, tabel lintas halaman, link, node yang dapat dipakai ulang, input markup, dan semantik tagged-PDF

Exceptions and enumerations

TypeValues or purpose
EPdfLayoutErrorException yang dimunculkan untuk input layout tidak valid, batas yang terlampaui, dan struktur semantik yang tidak konsisten
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

TypePublic members
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
TPdfLayoutGridTracksArray dinamis TPdfLayoutGridTrack
TPdfLayoutGridSizesArray dinamis ukuran track yang telah diresolusi
TPdfLayoutTableOptionsCellPadding, BorderWidth, BorderColor, BorderAlpha, RepeatHeaderRows, Default
TPdfMarkupOptionsBaseStyle, HeadingScale, MaxInputCharacters, MaxNodes, Default
TPdfLayoutSemanticElementSemantics, ParentElementIndex
TPdfLayoutSemanticElementsArray dinamis TPdfLayoutSemanticElement
TPdfLayoutCommandKind, PageNumber, Bounds, Text, FontName, FontSize, Color, Alpha, Alignment, Thickness, FileName, Uri, Source, SourcePageIndex, SemanticElementIndex, MarkedContentID, AnnotationIndex
TPdfLayoutCommandsArray dinamis TPdfLayoutCommand
TPdfLayoutPlanPageSettings, PageCount, Commands, SemanticElements, TextLineCount, RuleCount, RectangleCount, ImageCount, PageXObjectCount, CachedNodeCount, LinkCount, TaggedContentCount, ArtifactCount, MeasuredTextCount, TotalPageReferenceCount, ReservedPageDigits, CacheHitCount, CacheMissCount, ReusedXObjectCount, ColumnCount, ColumnGap

Layout classes

TypePublic members
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, anggaran MaxCommandCount, MaxStorageBytes, MaxPageCommands, MaxSourceCount, dan MaxCachedPages, serta statistik cache CachedPageCount, CacheHitCount, CacheMissCount, dan 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

Panggil SetLastItemConstraints setelah menambahkan item flow terlihat apa pun untuk menjaganya tetap utuh, menjaganya bersama awal item berikutnya, atau memaksa page break fisik sebelum atau sesudahnya

OrphanLines adalah jumlah minimum baris paragraf yang dipertahankan di dasar sebuah region dan WidowLines adalah minimum yang ditempatkan di puncak region berikutnya; keduanya bawaan satu untuk mempertahankan paginasi yang sudah ada

Kendali berlaku sama pada item ber-peran paragraf, link, list, figure, dan tabel, sedangkan kontainer semantik-saja tidak memiliki geometri sehingga menolak kendali paginasi

Item pliTable hanya menerima PageBreakBefore dan PageBreakAfter; pemecahan baris dan retensi awal tabel dikendalikan oleh model tabel

Perencana men-cache baris hasil wrapping selama sebuah build, sehingga prediksi keep-with-next dan emisi perintah final tidak mengukur teks yang sama dua kali

Paged command plans

Buat TPdfLayoutPagedPlan di atas TStream khusus yang seekable dan dapat di-resize, lalu panggil BuildPagedPlan atau teruskan ke TPdf.GeneratePagedLayout

Perencana menserialisasi perintah segera, melepaskan setiap hasil wrapped-text yang selesai, dan membiarkan Plan.Commands kosong sambil mempertahankan pengaturan halaman, elemen semantik, hitungan, dan total halaman yang stabil di ringkasan

Perintah body dan perintah header atau footer selanjutnya diindeks sebagai segmen halaman tertaut, sehingga MaterializePage memulihkan halaman lengkap tanpa memindai perintah halaman lain

MaxCachedPages hanya membatasi array halaman yang ditahan oleh rencana; pemanggil yang menyimpan array yang dikembalikan memperpanjang masa hidupnya, dan PDFium menahan halaman native hasil penulisan sampai dokumen tujuan disimpan atau ditutup

Format penyimpanannya adalah status sesi privat, bukan format file portabel, stream tidak boleh dibagikan atau diubah dari luar, dan objek sumber yang dirujuk page XObject atau cached node harus berumur lebih panjang daripada rencana paged

Gunakan TPdfRandomAccessStore ketika perintah sebaiknya tetap di memori hingga ambang yang dipilih lalu tumpah ke penyimpanan sementara delete-on-close setelahnya

Cross-page tables

Buat TPdfLayoutTable dengan track grid tetap, fraksional, atau seukuran konten, tambahkan baris dan sel, lalu panggil AddTable; dokumen menyimpan snapshot miliknya sendiri sehingga mutasi pemanggil berikutnya tidak dapat membatalkan cache rencana yang ada

Baris header harus bersebelahan di awal tabel dan berulang setelah transisi halaman atau kolom ketika RepeatHeaderRows true; span baris header tidak boleh meluas ke baris body

Baris body hanya dapat dipecah ketika AllowSplit true dan tidak termasuk grup row-spanning; semua sel dalam satu potongan pecahan berbagi pita baris, padding, dan geometri border yang sama

Caption tetap bersama blok header yang berulang dan awal minimum grup body pertama, sedangkan grup row-spanning transitif berpindah sebagai satu unit atom

Perencana mengeluarkan satu elemen Table, Caption opsional, anak TR, dan sel TH atau TD apa pun jumlah halamannya; perintah header yang berulang memakai ulang indeks semantik asli, dan sel TD menerima ID header yang tumpang tindih secara otomatis kecuali ID valid eksplisit disediakan

Border tabel adalah perintah artifact plcRectangle yang dirender melalui objek path PDFium native, sedangkan teks caption dan sel tetap menjadi konten bertanda

Top-level routines

RoutineDescription
ResolveLayoutTextMengekspansi placeholder nomor halaman memakai lebar digit yang dicadangkan
PdfLayoutSemanticRoleNameMengembalikan nama struktur tagged-PDF untuk sebuah peran semantik
BuildTaggedLayoutPdfMenerapkan rencana layout yang selesai beserta struktur bertanda ke byte PDF sumber
ResolvePdfLayoutGridTracksMengresolusi track grid tetap, fraksional, dan seukuran konten di dalam lebar yang tersedia

See Also