ComposeNextLayout

چیدمان صفحه، صفحه‌بندی، Form XObjectها

توضیحات

یک قطعهٔ پویای وضعیت‌دار را روی بومی با اندازهٔ طبیعی ترکیب می‌کند، سیاست سرریز، تراز، صفحه‌بندی و فضای جریان را اعمال می‌نماید و تبدیل جای‌گذاری نهایی را گزارش می‌کند

نحو

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) مقدار

ContentWidth را برمی‌گزیند و نسبت ابعاد مؤلفه را حفظ می‌کند مقیاس‌دهی هرگز محتوایی را که از قبل جا می‌شود بزرگ نمی‌کند بوم Form XObject از ContentHeight و

MinimumSlotHeight

MinimumFollowingHeight پیروی می‌کند، درحالی‌که تراز از مستطیل استفاده‌شدهٔ گزارش‌شده توسط مؤلفه لنگرشده در مختصات محلی صفر بهره می‌برد جریان محتوای صفحه پیش از رهاسازی دستهٔ capture موقت، مالک ارجاع Form XObject جای‌گذاری‌شده است جایگاهی کوتاه‌تر از HasMoreContent نتیجهٔ retry را بدون کلون‌سازی مؤلفه، صدا زدن فراخوان بازگشتی‌اش یا ساخت صفحهٔ موقت برمی‌گرداند

LastRetryReason قطعه‌های میانی را محدود نمی‌کند و تنها وقتی LastRequiredSlotHeight نادرست است بررسی می‌شود یک تلاش مجدد در فضای جریان جای‌گذاری خالی برمی‌گرداند، همه قطعات ثبت‌شده پیشین را حفظ می‌کند و دلیل و ارتفاع موردنیاز خود را از طریق

مثال

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