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ố
Page | Số trang đích hiện có tính từ 1 |
|---|---|
SlotLeft, SlotTop | Vị trí slot đích góc trên trái theo đơn vị tài liệu hiện tại |
SlotWidth, SlotHeight | Kích thước slot đích hữu hạn dương |
Options.ContentWidth, Options.ContentHeight | Canvas tự nhiên hữu hạn dương truyền cho thành phần qua AvailableWidth và AvailableHeight |
Options.OverflowPolicy | dopReject, dopClip hoặc dopScaleDown |
Options.HorizontalAlignment | dhaLeft, dhaCenter hoặc dhaRight |
Options.VerticalAlignment | dvaTop, dvaCenter hoặc dvaBottom |
Options.PaginationPolicy | Tá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.MinimumSlotHeight | Chiề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.MinimumFollowingHeight | Chiề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, CompositionIndex | Trang đã ghi nhận và số ghép thành công tính từ 1 |
|---|---|
SourceWidth, SourceHeight | Hình chữ nhật dùng tự nhiên thành phần trả về trước khi đặt |
Left, Top, Width, Height | Hì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, SlotHeight | Vùng đích ban đầu |
Transform | Ma 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 |
WasClipped | True khi việc cắt che một phần hình chữ nhật dùng sau biến đổi |
WasScaled | True 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_ERROR | Xá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_MORE | Phân đoạn đã được xác nhận và vẫn còn nội dung tiếp theo |
PDF_DYNAMIC_COMPONENT_COMPLETE | Phân đoạn đã hoàn tất phiên hoặc phiên trước đó đã hoàn tất |
PDF_DYNAMIC_COMPONENT_RETRY | Chí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