ComposeNextLayout
Tata letak halaman, paginasi, Form XObject
Deskripsi
Mengomposisikan satu fragmen dinamis berstatus pada kanvas berukuran natural, menerapkan kebijakan overflow, perataan, paginasi, dan flow-space, serta melaporkan transformasi penempatan akhir
Sintaks
Function TPDFlibDynamicComponentSession.ComposeNextLayout(
Page: Integer; SlotLeft, SlotTop, SlotWidth, SlotHeight: Double;
Const Options: TPDFlibDynamicLayoutOptions;
Out Placement: TPDFlibDynamicPagePlacement): Integer;
Parameter
Page | Nomor halaman tujuan berbasis satu yang sudah ada |
|---|---|
SlotLeft, SlotTop | Posisi slot tujuan kiri atas dalam unit dokumen saat ini |
SlotWidth, SlotHeight | Ukuran slot tujuan berhingga positif |
Options.ContentWidth, Options.ContentHeight | Kanvas natural berhingga positif yang diberikan ke komponen melalui AvailableWidth dan AvailableHeight |
Options.OverflowPolicy | dopReject, dopClip, atau dopScaleDown |
Options.HorizontalAlignment | dhaLeft, dhaCenter, atau dhaRight |
Options.VerticalAlignment | dvaTop, dvaCenter, atau dvaBottom |
Options.PaginationPolicy | Pemecahan normal, fallback keep-together sekali jalan, atau penempatan lengkap yang ketat |
Options.MinimumSlotHeight | Tinggi slot non-negatif yang disyaratkan sebelum kloning komponen dan komposisi dimulai |
Options.MinimumFollowingHeight | Tinggi non-negatif yang dicadangkan setelah fragmen terakhir yang terurai untuk komponen berikutnya |
Hasil penempatan
PageNumber, CompositionIndex | Halaman yang di-commit dan nomor komposisi sukses berbasis satu |
|---|---|
SourceWidth, SourceHeight | Persegi terpakai natural yang dikembalikan komponen sebelum penempatan |
Left, Top, Width, Height | Persegi terpakai yang ditransformasi final sebelum kliping tujuan |
SlotLeft, SlotTop, SlotWidth, SlotHeight | Wilayah tujuan asli |
Transform | Matriks affine logis dari koordinat lokal komponen ke koordinat dokumen atas-ke-bawah final |
WasClipped | True saat kliping menyembunyikan bagian dari persegi terpakai yang ditransformasi |
WasScaled | True saat skala proporsional kurang dari 1 |
Keterangan
dopReject mempertahankan halaman tujuan dan status komponen yang di-commit ketika persegi terpakai natural melebihi salah satu dimensi slot
dopClip
dopScaleDown mempertahankan skala natural dan memakai cakupan kliping graphics-state yang seimbang di sekeliling pemanggilan Form XObject
Min(1, SlotWidth / SourceWidth, SlotHeight / SourceHeight) memilih
ContentWidth dan mempertahankan rasio aspek komponen
Penykalaan tidak pernah memperbesar konten yang sudah muat
Kanvas Form XObject mengikuti ContentHeight dan
MinimumSlotHeight
MinimumFollowingHeight, sementara perataan memakai persegi terpakai yang dilaporkan komponen dengan jangkar di koordinat lokal nol
Content stream halaman memiliki referensi Form XObject yang ditempatkan sebelum handle rekam sementara dilepaskan
Slot yang lebih pendek dari HasMoreContent mengembalikan retry tanpa mengklon komponen, memanggil callback-nya, atau membuat halaman sementara
LastRetryReason tidak membatasi fragmen antara dan hanya diperiksa ketika LastRequiredSlotHeight bernilai false
Coba ulang ruang aliran mengembalikan penempatan kosong, mempertahankan semua fragmen yang sudah di-commit sebelumnya, dan mengekspos alasannya serta tinggi yang disyaratkan melalui
Contoh
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;
Nilai yang dikembalikan
PDF_DYNAMIC_COMPONENT_ERROR | Validasi input, callback, geometri, overflow, atau penempatan gagal tanpa meng-commit status |
|---|---|
PDF_DYNAMIC_COMPONENT_MORE | Fragmen telah di-commit dan masih ada konten lainnya |
PDF_DYNAMIC_COMPONENT_COMPLETE | Fragmen menyelesaikan session, atau session sudah selesai |
PDF_DYNAMIC_COMPONENT_RETRY | Kebijakan paginasi atau ruang aliran menunda uji coba yang belum di-commit ke slot lain |
Lihat juga
TPDFlibDynamicComponentSession, BeginFormXObject, ReleaseCapturedPage, DrawCapturedPage