ComposeNextLayout

פריסת עמוד, עימוד, Form XObjects

תיאור

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

תחביר

Function TPDFlibDynamicComponentSession.ComposeNextLayout(
  Page: Integer; SlotLeft, SlotTop, SlotWidth, SlotHeight: Double;
  Const Options: TPDFlibDynamicLayoutOptions;
  Out Placement: TPDFlibDynamicPagePlacement): Integer;

פרמטרים

Pageמספר עמוד יעד קיים החל מ-1
SlotLeft, SlotTopמיקום תא היעד של הפינה העליונה-שמאלית ביחידות המסמך הנוכחיות
SlotWidth, SlotHeightגודל תא יעד סופי וחיובי
Options.ContentWidth, Options.ContentHeightקנבס טבעי סופי וחיובי המועבר אל הרכיב דרך AvailableWidth ו-AvailableHeight
Options.OverflowPolicydopReject, dopClip או dopScaleDown
Options.HorizontalAlignmentdhaLeft, dhaCenter או dhaRight
Options.VerticalAlignmentdvaTop, dvaCenter או dvaBottom
Options.PaginationPolicyפיצול רגיל, גיבוי חד-פעמי של שמירה מאוחדת, או מיקום שלם קפדני
Options.MinimumSlotHeightגובה תא לא שלילי הנדרש לפני תחילת שכפול הרכיב וההרכבה
Options.MinimumFollowingHeightגובה לא שלילי הנשמר לאחר קטע סופי מפוענח עבור הרכיב הבא

תוצאת המיקום

PageNumber, CompositionIndexהעמוד שהוגש והמספר החל מ-1 של ההרכבה המוצלחת
SourceWidth, SourceHeightהמלבן הטבעי בשימוש שהרכיב החזיר לפני המיקום
Left, Top, Width, Heightהמלבן הסופי המותמר בשימוש לפני החיתוך ליעד
SlotLeft, SlotTop, SlotWidth, SlotHeightאזור היעד המקורי
Transformמטריצה אפינית לוגית מקואורדינטות מקומיות של הרכיב אל קואורדינטות המסמך הסופיות מלמעלה-למטה
WasClippedTrue כאשר החיתוך מסתיר חלק מהמלבן המותמר בשימוש
WasScaledTrue כאשר שינוי הגודל הפרופורציונלי קטן מ-1

הערות

dopReject משמר את עמוד היעד ואת מצב הרכיב שהוגש כאשר המלבן הטבעי בשימוש חורג מאחד מממדי התא

dopClip

dopScaleDown משמר קנה מידה טבעי ומשתמש בהיקף חיתוך מאוזן של מצב גרפיקה סביב הפעלת ה-Form XObject Min(1, SlotWidth / SourceWidth, SlotHeight / SourceHeight) בוחר

ContentWidth ומשמר את יחס הממדים של הרכיב שינוי גודל לעולם אינו מגדיל תוכן שכבר נכנס הקנבס של ה-Form XObject עוקב אחרי ContentHeight ו-

MinimumSlotHeight

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

LastRetryReason אינו מגביל קטעי ביניים ונבדק רק כאשר LastRequiredSlotHeight הוא false ניסיון חוזר בזמן זרימה מחזיר מיקום ריק, משמר את כל הקטעים שאושרו קודם לכן וחושף את הסיבה ואת הגובה הנדרש דרך

דוגמה

Options := TPDFlibDynamicComponentSession.CreateLayoutOptions(
  640, 360, dopScaleDown, dhaLeft, dvaTop, dppAllowSplit, 72, 24);

Status := Session.ComposeNextLayout(
  PageNumber, 36, 72, 540, 240, Options, Placement);

if Status <> PDF_DYNAMIC_COMPONENT_ERROR then
begin
  FinalScale := Placement.Transform.M11;
  FinalLeft := Placement.Left;
  FinalTop := Placement.Top;
end;

ערכים מוחזרים

PDF_DYNAMIC_COMPONENT_ERRORאימות הקלט, ה-callback, הגיאומטריה, הגלישה או המיקום נכשל מבלי לאשר מצב
PDF_DYNAMIC_COMPONENT_MOREהקטע אושר ונותר תוכן נוסף
PDF_DYNAMIC_COMPONENT_COMPLETEהקטע השלים את ההפעלה, או שההפעלה כבר הושלמה
PDF_DYNAMIC_COMPONENT_RETRYמדיניות עימוד או זמן זרימה דחתה את הניסיון שלא אושר אל תא אחר

ראה גם

TPDFlibDynamicComponentSession, BeginFormXObject, ReleaseCapturedPage, DrawCapturedPage