ComposeNextLayout

Bố cục trang, phân trang, Form XObject

Mô tả

Ghép một mảnh động có trạng thái trên canvas cỡ tự nhiên, áp chính sách tràn, căn chỉnh, phân trang và flow-space rồi báo biến đổi đặt cuối cùng

Cú pháp

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

Tham số

PageSố trang đích hiện có tính từ 1
SlotLeft, SlotTopVị trí slot đích góc trên trái theo đơn vị tài liệu hiện tại
SlotWidth, SlotHeightKích thước slot đích hữu hạn dương
Options.ContentWidth, Options.ContentHeightCanvas tự nhiên hữu hạn dương truyền cho thành phần qua AvailableWidth và AvailableHeight
Options.OverflowPolicydopReject, dopClip hoặc dopScaleDown
Options.HorizontalAlignmentdhaLeft, dhaCenter hoặc dhaRight
Options.VerticalAlignmentdvaTop, dvaCenter hoặc dvaBottom
Options.PaginationPolicyTách bình thường, dự phòng keep-together một lần hoặc đặt hoàn tất nghiêm ngặt
Options.MinimumSlotHeightChiều cao slot không âm yêu cầu trước khi bắt đầu sao chép và ghép thành phần
Options.MinimumFollowingHeightChiều cao không âm dành riêng sau mảnh cuối đã phân giải cho thành phần kế tiếp

Kết quả đặt

PageNumber, CompositionIndexTrang đã ghi nhận và số ghép thành công tính từ 1
SourceWidth, SourceHeightHình chữ nhật dùng tự nhiên thành phần trả về trước khi đặt
Left, Top, Width, HeightHình chữ nhật dùng sau biến đổi cuối cùng trước khi cắt tại đích
SlotLeft, SlotTop, SlotWidth, SlotHeightVùng đích ban đầu
TransformMa trận affine logic từ tọa độ cục bộ thành phần tới tọa độ tài liệu từ trên xuống cuối cùng
WasClippedTrue khi việc cắt che một phần hình chữ nhật dùng sau biến đổi
WasScaledTrue khi tỷ lệ thu phóng nhỏ hơn 1

Ghi chú

dopReject bảo toàn trang đích và trạng thái thành phần đã ghi nhận khi hình chữ nhật dùng tự nhiên vượt chiều nào của slot

dopClip

dopScaleDown giữ tỷ lệ tự nhiên và dùng một phạm vi cắt trạng thái đồ họa cân bằng quanh lời gọi Form XObject Min(1, SlotWidth / SourceWidth, SlotHeight / SourceHeight) chọn

Co giãn không bao giờ phóng to nội dung đã vừa

ContentWidth và giữ nguyên tỷ lệ khung hình của thành phần Việc thu phóng không bao giờ phóng to nội dung đã vừa khớp Canvas Form XObject theo ContentHeight và

Content stream của trang sở hữu tham chiếu Form XObject đã đặt trước khi handle capture tạm được giải phóng

MinimumSlotHeight

MinimumFollowingHeight, trong khi căn chỉnh dùng hình chữ nhật dùng do thành phần báo, neo tại tọa độ cục bộ 0 Luồng nội dung trang nắm giữ tham chiếu Form XObject đã đặt trước khi handle chụp tạm được giải phóng Slot thấp hơn HasMoreContent trả về retry mà không sao chép thành phần, gọi callback của nó hay tạo trang tạm

LastRetryReason không ràng buộc các mảnh trung gian và chỉ được kiểm tra khi LastRequiredSlotHeight là false Một lần thử lại trong vùng luồng trả về kết quả đặt trống, giữ nguyên tất cả các phân đoạn đã được xác nhận trước đó và cho biết lý do cùng chiều cao cần thiết qua

Ví dụ

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;

Giá trị trả về

PDF_DYNAMIC_COMPONENT_ERRORXác thực đầu vào, callback, hình học, tràn nội dung hoặc vị trí đặt thất bại mà chưa xác nhận trạng thái nào
PDF_DYNAMIC_COMPONENT_MOREPhân đoạn đã được xác nhận và vẫn còn nội dung tiếp theo
PDF_DYNAMIC_COMPONENT_COMPLETEPhân đoạn đã hoàn tất phiên hoặc phiên trước đó đã hoàn tất
PDF_DYNAMIC_COMPONENT_RETRYChính sách phân trang hoặc vùng luồng đã hoãn lần thử chưa được xác nhận sang một khung chứa khác

Xem thêm

TPDFlibDynamicComponentSession, BeginFormXObject, ReleaseCapturedPage, DrawCapturedPage