ComposeNextLayout

تخطيط الصفحة، تقسيم الصفحات، Form XObjects

الوصف

يركّب جزءًا ديناميكيًا واحدًا ذا حالة على لوحة بحجم طبيعي ويطبق سياسات التجاوز والمحاذاة وتقسيم الصفحات ومساحة التدفق ويعرض تحويل التموضع النهائي

الصيغة

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

المعاملات

Pageرقم صفحة وجهة موجود ذو أساس واحد
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الصفحة الملتزمة ورقم التركيب الناجح ذو الأساس الواحد
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) قيمة

لا يكبر تغيير المقياس المحتوى المتسع أصلًا أبدًا

يتبع لوحة Form XObject قيمتي ContentWidth وContentHeight، بينما تستخدم المحاذاة المستطيل المستخدم الذي يبلغ عنه المكون مرتكزًا عند الإحداثي المحلي صفر

يمتلك تدفق محتوى الصفحة مرجع Form XObject الموضوع قبل تحرير مقبض الالتقاط المؤقت

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فشل التحقق من المدخلات أو دالة رد النداء أو الهندسة أو الفائض أو التموضع دون تثبيت الحالة
PDF_DYNAMIC_COMPONENT_MOREتم تثبيت الجزء وما زال هناك محتوى متبقٍّ
PDF_DYNAMIC_COMPONENT_COMPLETEأكمل الجزء الجلسة أو كانت الجلسة مكتملة بالفعل
PDF_DYNAMIC_COMPONENT_RETRYأجّلت سياسة ترقيم الصفحات أو مساحة السيلان المحاولة غير المثبتة إلى خانة أخرى

انظر أيضًا

TPDFlibDynamicComponentSession, BeginFormXObject, ReleaseCapturedPage, DrawCapturedPage