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.OverflowPolicy | dopReject، dopClip یا dopScaleDown |
Options.HorizontalAlignment | dhaLeft، dhaCenter یا dhaRight |
Options.VerticalAlignment | dvaTop، dvaCenter یا dvaBottom |
Options.PaginationPolicy | شکافتن عادی، جانشین نگهداشتنباهمِ یکباره یا جایگذاری کامل سختگیرانه |
Options.MinimumSlotHeight | ارتفاع غیرمنفی جایگاه که پیش از آغاز کلونسازی و ترکیب مؤلفه لازم است |
Options.MinimumFollowingHeight | ارتفاع غیرمنفی که پس از قطعهٔ نهایی حلشده برای مؤلفهٔ بعدی رزرو میشود |
نتیجهٔ جایگذاری
PageNumber, CompositionIndex | صفحهٔ تثبیتشده و شمارهٔ ترکیب موفق با مبنای یک |
|---|---|
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 پیروی میکند، درحالیکه تراز از مستطیل استفادهشدهٔ گزارششده توسط مؤلفه لنگرشده در مختصات محلی صفر بهره میبرد
جریان محتوای صفحه پیش از رهاسازی دستهٔ 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