PDFium Delphi Component Docs

יחידת FPdfLayout

בונה תוכניות פריסת-זרימה הניתנות למדידה עם אביזרי עמודים, עמודות, טבלאות חוצות-עמודים, קישורים, צמתים לשימוש חוזר, קלט סימון (markup), וסמנטיקה של tagged-PDF

Exceptions and enumerations

TypeValues or purpose
EPdfLayoutErrorהחריגה שמועלית עבור קלט פריסה שגוי, מגבלות שחרגו, ומבנה סמנטי בלתי-עקבי
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
TPdfLayoutGridTracksמערך דינמי של TPdfLayoutGridTrack
TPdfLayoutGridSizesמערך דינמי של גדלי track שנפתרו
TPdfLayoutTableOptionsCellPadding, ‏BorderWidth, ‏BorderColor, ‏BorderAlpha, ‏RepeatHeaderRows, ‏Default
TPdfMarkupOptionsBaseStyle, ‏HeadingScale, ‏MaxInputCharacters, ‏MaxNodes, ‏Default
TPdfLayoutSemanticElementSemantics, ‏ParentElementIndex
TPdfLayoutSemanticElementsמערך דינמי של TPdfLayoutSemanticElement
TPdfLayoutCommandKind, ‏PageNumber, ‏Bounds, ‏Text, ‏FontName, ‏FontSize, ‏Color, ‏Alpha, ‏Alignment, ‏Thickness, ‏FileName, ‏Uri, ‏Source, ‏SourcePageIndex, ‏SemanticElementIndex, ‏MarkedContentID, ‏AnnotationIndex
TPdfLayoutCommandsמערך דינמי של 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, תקציבי ה-MaxCommandCount, ‏MaxStorageBytes, ‏MaxPageCommands, ‏MaxSourceCount ו-MaxCachedPages, וסטטיסטיקות המטמון של CachedPageCount, ‏CacheHitCount, ‏CacheMissCount ו-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

קראו ל-SetLastItemConstraints אחרי הוספת כל פריט זרימה גלוי כדי להחזיק אותו יחד, לקשור אותו לתחילת הפריט הבא, או לכפות מעבר עמוד פיזי לפניו או אחריו

OrphanLines הוא מינימום השורות של פסקה שנשמרות בתחתית אזור, ו-WidowLines הוא המינימום שמוצב בראש האזור הבא; שניהם ברירת מחדל של אחד כדי לשמר את ה-pagination הקיימת

האילוצים חלים באותה מידה על פריטים מסוג פסקה, קישור, רשימה, תרשים וטבלה, ואילו מכלים סמנטיים-בלבד חסרי גאומטריה ולכן דוחים אילוצי pagination

פריט pliTable מקבל רק PageBreakBefore ו-PageBreakAfter; פיצול שורות ושימור תחילת-הטבלה נשלטים על ידי מודל הטבלה

המתכנן מטמין שורות גלושות במהלך build אחד, כך שחיזוי keep-with-next ופליטת הפקודות הסופית אינם מודדים את אותו טקסט פעמיים

Paged command plans

צרו TPdfLayoutPagedPlan מעל TStream ייעודי שניתן ל-seek ולשינוי גודל, ואז קראו ל-BuildPagedPlan או העבירו אותו אל TPdf.GeneratePagedLayout

המתכנן מסדר פקודות מיד, משחרר כל תוצאת טקסט-גלוש שהושלמה, ומשאיר את Plan.Commands ריק תוך שימור הגדרות העמודים, האלמנטים הסמנטיים, הספירות וסכומי העמודים היציבים ב-summary

פקודות הגוף ופקודות הכותרת או הכותרת-התחתונה שמאוחר יותר ממודדות כמקטעי עמוד משורשרים, כך ש-MaterializePage משחזר את העמוד השלם מבלי לסרוק פקודות של עמודים אחרים

MaxCachedPages תוחם רק את מערכי העמודים שהתוכנית מחזיקה; קוראים ששומרים את המערכים שהוחזרו מאריכים את חייהם, ו-PDFium מחזיק עמודים נכתבים מקוריים עד שמסמך היעד נשמר או נסגר

פורמט האחסון הוא מצב הפעלה פרטי ולא פורמט קובץ נייד, אסור לשתף את הזרם או לשנות אותו חיצונית, ואובייקטי המקור שעמודי XObject או צמתים מטמונים מפנים אליהם חייבים לשרוד את התוכנית העמודית

השתמשו ב-TPdfRandomAccessStore כאשר הפקודות צריכות להישאר בזיכרון עד סף נבחר ולהתחלק אחר כך אל אחסון זמני מסוג delete-on-close

Cross-page tables

צרו TPdfLayoutTable עם track רשת קבועים, שבריים או לפי-תוכן, הוסיפו שורות ותאים, ואז קראו ל-AddTable; המסמך שומר תמונת מצב בבעלותו, כך ששינויים של הקורא לאחר מכן לא יפסלו מטמון תוכניות קיים

שורות כותרת חייבות להיות רצופות בתחילת הטבלה, וחוזרות אחרי מעבר עמוד או עמודה כאשר RepeatHeaderRows הוא true; spans של שורת כותרת אינם יכולים להימשך אל שורות גוף

שורת גוף יכולה להתפצל רק כאשר AllowSplit הוא true והיא אינה שייכת לקבוצת row-spanning; כל התאים בחתיכת פיצול חולקים את אותו פס שורות, padding וגאומטריית גבולות

כתוביות (captions) נשארות עם בלוק הכותרת החוזר ועם תחילת המינימום של קבוצת הגוף הראשונה, ואילו קבוצות row-spanning טרנזיטיביות נעות כיחידה אטומית אחת

המתכנן פולט אלמנט Table אחד, Caption אופציונלי, בני TR, ותאי TH או TD בלי קשר למספר העמודים; פקודות הכותרת החוזרות עושות שימוש חוזר באינדקסים הסמנטיים המקוריים, ותאי TD מקבלים אוטומטית מזהי כותרת חופפים אלא אם סופקו מזהים תקינים מפורשים

גבולות הטבלה הם פקודות plcRectangle מסוג artifact המרונדרות דרך אובייקטי מסלול מקוריים של PDFium, בעוד שטקסט הכתובית והתאים נשארים תוכן מתויג

Top-level routines

RoutineDescription
ResolveLayoutTextמרחיב placeholders של מספרי עמודים תוך שימוש ברוחב הספרות השמורה
PdfLayoutSemanticRoleNameמחזיר את שם המבנה של tagged-PDF עבור תפקיד סמנטי
BuildTaggedLayoutPdfמחיל תוכנית פריסה מושלמת ומבנה מתויג על בתי PDF מקור
ResolvePdfLayoutGridTracksפותר track רשת קבועים, שבריים ולפי-תוכן בתוך הרוחב הזמין

See Also