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.OverflowPolicy | dopReject, dopClip או dopScaleDown |
Options.HorizontalAlignment | dhaLeft, dhaCenter או dhaRight |
Options.VerticalAlignment | dvaTop, dvaCenter או dvaBottom |
Options.PaginationPolicy | פיצול רגיל, גיבוי חד-פעמי של שמירה מאוחדת, או מיקום שלם קפדני |
Options.MinimumSlotHeight | גובה תא לא שלילי הנדרש לפני תחילת שכפול הרכיב וההרכבה |
Options.MinimumFollowingHeight | גובה לא שלילי הנשמר לאחר קטע סופי מפוענח עבור הרכיב הבא |
תוצאת המיקום
PageNumber, CompositionIndex | העמוד שהוגש והמספר החל מ-1 של ההרכבה המוצלחת |
|---|---|
SourceWidth, SourceHeight | המלבן הטבעי בשימוש שהרכיב החזיר לפני המיקום |
Left, Top, Width, Height | המלבן הסופי המותמר בשימוש לפני החיתוך ליעד |
SlotLeft, SlotTop, SlotWidth, SlotHeight | אזור היעד המקורי |
Transform | מטריצה אפינית לוגית מקואורדינטות מקומיות של הרכיב אל קואורדינטות המסמך הסופיות מלמעלה-למטה |
WasClipped | True כאשר החיתוך מסתיר חלק מהמלבן המותמר בשימוש |
WasScaled | True כאשר שינוי הגודל הפרופורציונלי קטן מ-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